summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArif Hussain <arifhussain@codeaurora.org>2017-01-31 14:37:45 -0800
committerqcabuildsw <qcabuildsw@localhost>2017-02-03 18:24:24 -0800
commit66c2414ee2a08d5c00feccecd107d05ad967444f (patch)
treebecf4f98c3326591f36b337af56b7baf16043bbc
parent947b7a433b49a33c0c7adf060817ae714ff7409c (diff)
qcacld-3.0: Handle resetting do_not_roam flag in sme_config_fast_roaming
do_not_roam flag is set when supplicant initiate connect request with BSSID. This flag reset when supplicant sends vendor command to enable roaming. If roaming is disabled using driver command, this supplicant request to enable roaming will be ignored in sme_config_fast_roaming function and do_not_roam flag remains set. So make sure to update do_not_roam flag in sme_config_fast_roaming function even before validating isFastRoamIniFeatureEnabled to process or skip roam request from supplicant. Change-Id: I541b9e5a66e7d7ad8b2040cf9070a7893be66b5f CRs-Fixed: 2000718
-rw-r--r--core/sme/src/common/sme_api.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c
index 303963f6897a..5f99b8625fa7 100644
--- a/core/sme/src/common/sme_api.c
+++ b/core/sme/src/common/sme_api.c
@@ -9075,6 +9075,19 @@ QDF_STATUS sme_config_fast_roaming(tHalHandle hal, uint8_t session_id,
tCsrRoamSession *session = CSR_GET_SESSION(mac_ctx, session_id);
QDF_STATUS status;
+ /* do_not_roam flag is set in wlan_hdd_cfg80211_connect_start
+ * when supplicant initiate connect request with BSSID.
+ * This flag reset when supplicant sends vendor command to enable
+ * roaming after association.
+ *
+ * This request from wpa_supplicant will be skipped in this function
+ * if roaming is disabled using driver command or INI and do_not_roam
+ * flag remains set. So make sure to set do_not_roam flag as per
+ * wpa_supplicant even if roam request from wpa_supplicant ignored.
+ */
+ if (session && session->pCurRoamProfile)
+ session->pCurRoamProfile->do_not_roam = !is_fast_roam_enabled;
+
if (!mac_ctx->roam.configParam.isFastRoamIniFeatureEnabled) {
sms_log(mac_ctx, LOGE, FL("Fast roam is disabled through ini"));
if (!is_fast_roam_enabled)
@@ -9082,9 +9095,6 @@ QDF_STATUS sme_config_fast_roaming(tHalHandle hal, uint8_t session_id,
return QDF_STATUS_E_FAILURE;
}
- if (session && session->pCurRoamProfile)
- session->pCurRoamProfile->do_not_roam = !is_fast_roam_enabled;
-
status = csr_neighbor_roam_update_fast_roaming_enabled(mac_ctx,
session_id, is_fast_roam_enabled);
if (!QDF_IS_STATUS_SUCCESS(status)) {