Эх сурвалжийг харах

qcacld-3.0: Allow roam invoke while FASTREASSOC

While handling userspace-directed re-association, driver
checks for flag "supplicant_disabled_roaming" before sending
roam invoke command after connection. Currently, the value of
supplicant_disabled_roaming is getting updated by value comes
through vendor command QCA_WLAN_VENDOR_ATTR_ROAMING_POLICY.
In case if roaming does not get enabled using vendor command
in __wlan_hdd_cfg80211_set_fast_roaming, driver rejects
fast re-association cmd. This leads to roaming failure.

Fix is to allow roam invoke command irrespective of flag
"supplicant_disabled_roaming" and send csr_roam_offload_scan
with reason REASON_SUPPLICANT_DISABLED_ROAMING instead of
REASON_DISCONNECTED while processing FASTREASSOC command.

Change-Id: Iee55fff8dd9445a2fb2b96a244f59a763f207dd5
CRs-Fixed: 2408861
Abhinav Kumar 6 жил өмнө
parent
commit
cd737decf2

+ 2 - 4
core/sme/src/common/sme_api.c

@@ -13530,10 +13530,8 @@ QDF_STATUS sme_fast_reassoc(mac_handle_t mac_handle,
 	}
 
 	roam_profile = session->pCurRoamProfile;
-	if (roam_profile->supplicant_disabled_roaming ||
-	    roam_profile->driver_disabled_roaming) {
-		sme_debug("roaming status in Supplicant %d and in driver %d",
-			  roam_profile->supplicant_disabled_roaming,
+	if (roam_profile->driver_disabled_roaming) {
+		sme_debug("roaming status in driver %d",
 			  roam_profile->driver_disabled_roaming);
 		return QDF_STATUS_E_FAILURE;
 	}

+ 2 - 2
core/sme/src/csr/csr_neighbor_roam.c

@@ -141,8 +141,8 @@ QDF_STATUS csr_neighbor_roam_update_fast_roaming_enabled(struct mac_context *mac
 						REASON_CONNECT);
 			} else {
 				csr_roam_offload_scan(mac_ctx, session_id,
-						ROAM_SCAN_OFFLOAD_STOP,
-						REASON_DISCONNECTED);
+					ROAM_SCAN_OFFLOAD_STOP,
+					REASON_SUPPLICANT_DISABLED_ROAMING);
 			}
 			sme_release_global_lock(&mac_ctx->sme);
 		}