|
@@ -837,9 +837,11 @@ static bool cm_is_retry_with_same_candidate(struct cnx_mgr *cm_ctx,
|
|
|
struct wlan_objmgr_psoc *psoc;
|
|
|
bool sae_connection;
|
|
|
QDF_STATUS status;
|
|
|
+ qdf_freq_t freq;
|
|
|
|
|
|
psoc = wlan_pdev_get_psoc(wlan_vdev_get_pdev(cm_ctx->vdev));
|
|
|
key_mgmt = req->cur_candidate->entry->neg_sec_info.key_mgmt;
|
|
|
+ freq = req->cur_candidate->entry->channel.chan_freq;
|
|
|
|
|
|
/* Try once again for the invalid PMKID case without PMKID */
|
|
|
if (resp->status_code == STATUS_INVALID_PMKID)
|
|
@@ -848,7 +850,15 @@ static bool cm_is_retry_with_same_candidate(struct cnx_mgr *cm_ctx,
|
|
|
/* Try again for the JOIN timeout if only one candidate */
|
|
|
if (resp->reason == CM_JOIN_TIMEOUT &&
|
|
|
qdf_list_size(req->candidate_list) == 1) {
|
|
|
- /* Get assoc retry count */
|
|
|
+ /*
|
|
|
+ * If there is a interface connected which can lead to MCC,
|
|
|
+ * do not retry as it can lead to beacon miss on that interface.
|
|
|
+ * Coz as part of vdev start mac remain on candidate freq for 3
|
|
|
+ * sec.
|
|
|
+ */
|
|
|
+ if (policy_mgr_will_freq_lead_to_mcc(psoc, freq))
|
|
|
+ return false;
|
|
|
+
|
|
|
wlan_mlme_get_sae_assoc_retry_count(psoc, &max_retry_count);
|
|
|
goto use_same_candidate;
|
|
|
}
|