ソースを参照

qcacld-3.0: Un-initialize modules after closing cds schedulers

During driver un-initialization, cds scheduler is closed after
un-initializing lower layer modules. This may lead to crash as
there is possibility of MC thread to process commands after
lower layer objects are uninitialized/freed.

Un-initialize lower layer modules after closing cds schedulers.

Change-Id: Ia43ca4f95c5b40aeb14976b523008e650ba26e10
CRs-Fixed: 1079196
Hanumanth Reddy Pothula 8 年 前
コミット
709a636c8a
1 ファイル変更2 行追加1 行削除
  1. 2 1
      core/hdd/src/wlan_hdd_main.c

+ 2 - 1
core/hdd/src/wlan_hdd_main.c

@@ -4873,7 +4873,6 @@ static void hdd_wlan_exit(hdd_context_t *hdd_ctx)
 		hdd_stop_all_adapters(hdd_ctx);
 	}
 
-	hdd_wlan_stop_modules(hdd_ctx);
 	/*
 	 * Close the scheduler before calling cds_close to make sure no thread
 	 * is scheduled after the each module close is called i.e after all the
@@ -4885,6 +4884,8 @@ static void hdd_wlan_exit(hdd_context_t *hdd_ctx)
 		QDF_ASSERT(QDF_IS_STATUS_SUCCESS(qdf_status));
 	}
 
+	hdd_wlan_stop_modules(hdd_ctx);
+
 	qdf_spinlock_destroy(&hdd_ctx->hdd_adapter_lock);
 	qdf_spinlock_destroy(&hdd_ctx->sta_update_info_lock);
 	qdf_spinlock_destroy(&hdd_ctx->connection_status_lock);