浏览代码

qcacld-3.0: Fix SAP force scc failed after STA channel switch

After STA channel switch, when SAP try to force scc with STA,
race condition issue happens sometimes between mc thread and sap
restart thread, hdd_ctx->roaming_in_progress isn't cleared when
check roaming status in hdd_softap_set_channel_change, so channel
switch failed.

Fix: change order, make sure hdd_set_roaming_in_progress(false)
happens before policy_mgr_check_concurrent_intf_and_restart_sap.

Change-Id: I1146eb665941fe0beb8f6165272f32ac8f7e74f2
CRs-Fixed: 2549571
Jianmin Zhu 5 年之前
父节点
当前提交
36626e4fad
共有 1 个文件被更改,包括 3 次插入3 次删除
  1. 3 3
      core/sme/src/csr/csr_api_roam.c

+ 3 - 3
core/sme/src/csr/csr_api_roam.c

@@ -21562,14 +21562,14 @@ static QDF_STATUS csr_process_roam_sync_callback(struct mac_context *mac_ctx,
 		}
 
 		policy_mgr_check_n_start_opportunistic_timer(mac_ctx->psoc);
+		csr_roam_call_callback(mac_ctx, session_id, NULL, 0,
+				       eCSR_ROAM_SYNCH_COMPLETE,
+				       eCSR_ROAM_RESULT_SUCCESS);
 		policy_mgr_check_concurrent_intf_and_restart_sap(mac_ctx->psoc);
 		if (roam_synch_data->authStatus ==
 		    CSR_ROAM_AUTH_STATUS_AUTHENTICATED)
 			csr_roam_update_cfg(mac_ctx, session_id,
 					    REASON_CONNECT);
-		csr_roam_call_callback(mac_ctx, session_id, NULL, 0,
-				       eCSR_ROAM_SYNCH_COMPLETE,
-				       eCSR_ROAM_RESULT_SUCCESS);
 		vdev_roam_params->roam_invoke_in_progress = false;
 		goto end;
 	case SIR_ROAMING_DEAUTH: