ソースを参照

qcacld-3.0: Cleanup NDI session even if BSS start is in progress

NDI delete may get issue while NDI creation is still in progress.
NDI session doesn't get cleaned up as it's done based on
CSR_IS_CONN_NDI(&session->connectedProfile), which is valid only
after the NDI is created i.e. START_BSS success.
So cleanup should happen based on an intermediate check,
i.e. if WLAN_SER_CMD_VDEV_START_BSS is still in queue.
This was there earlier but got removed as part connection mgr
cleanup as the station connection is moved to CM path.
Add a check on WLAN_SER_CMD_VDEV_START_BSS and cleanup NDI.

Change-Id: If692cf0e594cbdcb89cd1d8a0ad591b5bae3de49
CRs-Fixed: 2969276
Srinivas Dasari 3 年 前
コミット
043081eff7
1 ファイル変更3 行追加1 行削除
  1. 3 1
      core/sme/src/csr/csr_api_roam.c

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

@@ -7313,7 +7313,9 @@ QDF_STATUS csr_roam_disconnect(struct mac_context *mac_ctx, uint32_t session_id,
 	}
 #else
 	csr_flush_pending_start_bss_cmd(mac_ctx, session_id);
-	if (CSR_IS_CONN_NDI(&session->connectedProfile))
+	if (CSR_IS_CONN_NDI(&session->connectedProfile) ||
+	    wlan_serialization_get_active_cmd(mac_ctx->psoc, session_id,
+					      WLAN_SER_CMD_VDEV_START_BSS))
 		status = csr_roam_issue_disassociate_cmd(mac_ctx, session_id,
 							 reason, mac_reason);
 #endif