Browse Source

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 years ago
parent
commit
043081eff7
1 changed files with 3 additions and 1 deletions
  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