Browse Source

qcacld-3.0: Fix data stall after sta roaming disabled and reconnection

When reassociate, roaming is disabled by wpa_supplicant, but RSO stop
reason REASON_SUPPLICANT_DISABLED_ROAMING is ignored and roam scan mode
isn't cleared to 0 before vdev WMI_ROAM_FW_OFFLOAD_ENABLE_FLAG flag is
cleared. Then host can't receive peer unmap/map event when wlan disconnect
and reconnect, host dp peer id isn't updated, Rx frames are dropped for
peer id mismatch.

Fix: When roaming is disabled, make sure roam scan mode is cleared to 0
before vdev WMI_ROAM_FW_OFFLOAD_ENABLE_FLAG flag is cleared.

Change-Id: Ia471998cf631948d8ffa701e67fcee22eebb0fa0
CRs-Fixed: 2734351
Jianmin Zhu 4 years ago
parent
commit
eb5898e905
1 changed files with 2 additions and 1 deletions
  1. 2 1
      core/wma/src/wma_scan_roam.c

+ 2 - 1
core/wma/src/wma_scan_roam.c

@@ -2097,7 +2097,8 @@ QDF_STATUS wma_process_roaming_config(tp_wma_handle wma_handle,
 
 		if (roam_req->reason == REASON_ROAM_STOP_ALL ||
 		    roam_req->reason == REASON_DISCONNECTED ||
-		    roam_req->reason == REASON_ROAM_SYNCH_FAILED) {
+		    roam_req->reason == REASON_ROAM_SYNCH_FAILED ||
+		    roam_req->reason == REASON_SUPPLICANT_DISABLED_ROAMING) {
 			mode = WMI_ROAM_SCAN_MODE_NONE;
 		} else {
 			if (csr_is_roam_offload_enabled(mac))