Browse Source

qcacld-3.0: Add missing qdf_spinlock_destroy() to free debug cookie

Add missing qdf_spinlock_destroy() to destroy spin lock debug cookie
for SLUB build. For normal builds, qdf_spinlock_destroy() is a NO-OP
function.

Change-Id: Idccdc9f7acaea785a600e14304368f53ff7e17d7
CRs-Fixed: 2077964
Poddar, Siddarth 7 years ago
parent
commit
2fb98079a9
3 changed files with 9 additions and 0 deletions
  1. 4 0
      core/sap/dfs/inc/dfs.h
  2. 3 0
      core/sap/dfs/src/dfs.c
  3. 2 0
      core/wma/src/wma_main.c

+ 4 - 0
core/sap/dfs/inc/dfs.h

@@ -146,15 +146,19 @@ enum {
 #define ATH_DFSQ_LOCK(_dfs)        qdf_spin_lock_bh((&(_dfs)->dfs_radarqlock))
 #define ATH_DFSQ_UNLOCK(_dfs)      qdf_spin_unlock_bh((&(_dfs)->dfs_radarqlock))
 #define ATH_DFSQ_LOCK_INIT(_dfs)   qdf_spinlock_create(&(_dfs)->dfs_radarqlock)
+#define ATH_DFSQ_LOCK_DEINIT(_dfs) qdf_spinlock_destroy(&(_dfs)->dfs_radarqlock)
 
 #define ATH_ARQ_LOCK(_dfs)         qdf_spin_lock_bh((&(_dfs)->dfs_arqlock))
 #define ATH_ARQ_UNLOCK(_dfs)       qdf_spin_unlock_bh((&(_dfs)->dfs_arqlock))
 #define ATH_ARQ_LOCK_INIT(_dfs)    qdf_spinlock_create(&(_dfs)->dfs_arqlock)
+#define ATH_ARQ_LOCK_DEINIT(_dfs)  qdf_spinlock_destroy(&(_dfs)->dfs_arqlock)
 
 #define ATH_DFSEVENTQ_LOCK(_dfs)   qdf_spin_lock_bh((&(_dfs)->dfs_eventqlock))
 #define ATH_DFSEVENTQ_UNLOCK(_dfs) qdf_spin_unlock_bh((&(_dfs)->dfs_eventqlock))
 #define ATH_DFSEVENTQ_LOCK_INIT(_dfs) \
 				   qdf_spinlock_create((&(_dfs)->dfs_eventqlock))
+#define ATH_DFSEVENTQ_LOCK_DEINIT(_dfs) \
+				qdf_spinlock_destroy((&(_dfs)->dfs_eventqlock))
 /* Mask for time stamp from descriptor */
 #define DFS_TSMASK              0xFFFFFFFF
 /* Shift for time stamp from descriptor */

+ 3 - 0
core/sap/dfs/src/dfs.c

@@ -613,6 +613,9 @@ void dfs_detach(struct ieee80211com *ic)
 	dfs_nol_timer_cleanup(dfs);
 	OS_FREE(dfs);
 
+	ATH_DFSQ_LOCK_DEINIT(dfs);
+	ATH_ARQ_LOCK_DEINIT(dfs);
+	ATH_DFSEVENTQ_LOCK_DEINIT(dfs);
 	/* XXX? */
 	ic->ic_dfs = NULL;
 }

+ 2 - 0
core/wma/src/wma_main.c

@@ -3730,6 +3730,8 @@ QDF_STATUS wma_close(void *cds_ctx)
 	wma_cleanup_hold_req(wma_handle);
 	qdf_wake_lock_destroy(&wma_handle->wmi_cmd_rsp_wake_lock);
 	qdf_runtime_lock_deinit(&wma_handle->wmi_cmd_rsp_runtime_lock);
+	qdf_spinlock_destroy(&wma_handle->vdev_respq_lock);
+	qdf_spinlock_destroy(&wma_handle->wma_hold_req_q_lock);
 	for (idx = 0; idx < wma_handle->num_mem_chunks; ++idx) {
 		qdf_mem_free_consistent(wma_handle->qdf_dev,
 					wma_handle->qdf_dev->dev,