Преглед на файлове

qcacld-3.0: Release cmd before qdf_session_close_event completed

Need release cmd e_sme_command_del_sta_session before
hdd_sme_close_session_callback.
hdd_sme_close_session_callback will call
qdf_event_set(&adapter->qdf_session_close_event),
hdd_vdev_destroy will destroy vdev after qdf_session_close_event
completed, while csr_release_command will still access vdev.

Change-Id: Idc581bdd4f1d63b4903ee802326474ba83d528e5
CRs-Fixed: 2324616
Jianmin Zhu преди 6 години
родител
ревизия
82a69bf343
променени са 1 файла, в които са добавени 7 реда и са изтрити 6 реда
  1. 7 6
      core/sme/src/csr/csr_api_roam.c

+ 7 - 6
core/sme/src/csr/csr_api_roam.c

@@ -17329,6 +17329,13 @@ QDF_STATUS csr_process_del_sta_session_rsp(tpAniSirGlobal mac_ctx,
 	sme_debug("Del Sta rsp status = %d", rsp->status);
 	/* This session is done. */
 	csr_cleanup_session(mac_ctx, sessionId);
+
+	/* Remove this command out of the non scan active list */
+	if (csr_nonscan_active_ll_remove_entry(mac_ctx, entry,
+					       LL_ACCESS_LOCK)) {
+		csr_release_command(mac_ctx, sme_command);
+	}
+
 	if (rsp->sme_callback) {
 		status = sme_release_global_lock(&mac_ctx->sme);
 		if (!QDF_IS_STATUS_SUCCESS(status))
@@ -17343,12 +17350,6 @@ QDF_STATUS csr_process_del_sta_session_rsp(tpAniSirGlobal mac_ctx,
 		}
 	}
 
-	/* Remove this command out of the non scan active list */
-	if (csr_nonscan_active_ll_remove_entry(mac_ctx, entry,
-					       LL_ACCESS_LOCK)) {
-		csr_release_command(mac_ctx, sme_command);
-	}
-
 	return QDF_STATUS_SUCCESS;
 }