From 2fb98079a9b42d58377ba824caed04af9cd3148b Mon Sep 17 00:00:00 2001 From: "Poddar, Siddarth" Date: Wed, 19 Jul 2017 14:58:30 +0530 Subject: [PATCH] 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 --- core/sap/dfs/inc/dfs.h | 4 ++++ core/sap/dfs/src/dfs.c | 3 +++ core/wma/src/wma_main.c | 2 ++ 3 files changed, 9 insertions(+) diff --git a/core/sap/dfs/inc/dfs.h b/core/sap/dfs/inc/dfs.h index b0a034c5a1b0..291ae6798cc0 100644 --- a/core/sap/dfs/inc/dfs.h +++ b/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 */ diff --git a/core/sap/dfs/src/dfs.c b/core/sap/dfs/src/dfs.c index 01fa720b3948..072d86d08e14 100644 --- a/core/sap/dfs/src/dfs.c +++ b/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; } diff --git a/core/wma/src/wma_main.c b/core/wma/src/wma_main.c index 978b2cb2de23..f54441ec7c3c 100644 --- a/core/wma/src/wma_main.c +++ b/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,