qcacmn: 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: If5a3843a468e460952dc64f0e6b5b1fba05ebbb3
CRs-Fixed: 2078940
diff --git a/hif/src/ce/ce_main.c b/hif/src/ce/ce_main.c
index 1da570c..fecd0d9 100644
--- a/hif/src/ce/ce_main.c
+++ b/hif/src/ce/ce_main.c
@@ -2134,12 +2134,21 @@
for (pipe_num = 0; pipe_num < scn->ce_count; pipe_num++) {
struct HIF_CE_pipe_info *pipe_info;
+ struct CE_attr attr;
+ struct CE_handle *ce_diag = hif_state->ce_diag;
pipe_info = &hif_state->pipe_info[pipe_num];
if (pipe_info->ce_hdl) {
+ if (pipe_info->ce_hdl != ce_diag) {
+ attr = hif_state->host_ce_config[pipe_num];
+ if (attr.src_nentries)
+ qdf_spinlock_destroy(&pipe_info->
+ completion_freeq_lock);
+ }
ce_fini(pipe_info->ce_hdl);
pipe_info->ce_hdl = NULL;
pipe_info->buf_sz = 0;
+ qdf_spinlock_destroy(&pipe_info->recv_bufs_needed_lock);
}
}
@@ -2382,6 +2391,7 @@
struct HIF_CE_state *hif_state = HIF_GET_CE_STATE(hif_sc);
qdf_spinlock_destroy(&hif_state->irq_reg_lock);
+ qdf_spinlock_destroy(&hif_state->keep_awake_lock);
}
/**
diff --git a/qdf/linux/src/qdf_lock.c b/qdf/linux/src/qdf_lock.c
index 088bbf8..25c2bcf 100644
--- a/qdf/linux/src/qdf_lock.c
+++ b/qdf/linux/src/qdf_lock.c
@@ -819,7 +819,7 @@
qdf_spinlock_destroy(&qdf_lock_list_spinlock);
for (i = 0; i < QDF_LOCK_STATS_LIST_SIZE; i++) {
if (!qdf_is_lock_cookie_free(&lock_cookies[i]))
- QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
+ QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_DEBUG,
"%s: lock_not_destroyed, fun: %s, line %d",
__func__, lock_cookies[i].u.cookie.func,
lock_cookies[i].u.cookie.line);
diff --git a/qdf/linux/src/qdf_mc_timer.c b/qdf/linux/src/qdf_mc_timer.c
index f5bb757..e42fd5a 100644
--- a/qdf/linux/src/qdf_mc_timer.c
+++ b/qdf/linux/src/qdf_mc_timer.c
@@ -216,6 +216,7 @@
{
qdf_timer_clean();
qdf_list_destroy(&qdf_timer_list);
+ qdf_spinlock_destroy(&qdf_timer_list_lock);
}
EXPORT_SYMBOL(qdf_mc_timer_manager_exit);
#endif
diff --git a/qdf/linux/src/qdf_mem.c b/qdf/linux/src/qdf_mem.c
index 57e0a56..0347c84 100644
--- a/qdf/linux/src/qdf_mem.c
+++ b/qdf/linux/src/qdf_mem.c
@@ -929,6 +929,7 @@
qdf_net_buf_debug_exit();
qdf_mem_debug_clean();
qdf_list_destroy(&qdf_mem_list);
+ qdf_spinlock_destroy(&qdf_mem_list_lock);
}
/**