Просмотр исходного кода

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
Poddar, Siddarth 7 лет назад
Родитель
Сommit
725e9f5a0d
4 измененных файлов с 13 добавлено и 1 удалено
  1. 10 0
      hif/src/ce/ce_main.c
  2. 1 1
      qdf/linux/src/qdf_lock.c
  3. 1 0
      qdf/linux/src/qdf_mc_timer.c
  4. 1 0
      qdf/linux/src/qdf_mem.c

+ 10 - 0
hif/src/ce/ce_main.c

@@ -2134,12 +2134,21 @@ void hif_ce_stop(struct hif_softc *scn)
 
 	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 @@ void hif_ce_close(struct hif_softc *hif_sc)
 	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);
 }
 
 /**

+ 1 - 1
qdf/linux/src/qdf_lock.c

@@ -819,7 +819,7 @@ void qdf_lock_stats_deinit(void)
 	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);

+ 1 - 0
qdf/linux/src/qdf_mc_timer.c

@@ -216,6 +216,7 @@ void qdf_mc_timer_manager_exit(void)
 {
 	qdf_timer_clean();
 	qdf_list_destroy(&qdf_timer_list);
+	qdf_spinlock_destroy(&qdf_timer_list_lock);
 }
 EXPORT_SYMBOL(qdf_mc_timer_manager_exit);
 #endif

+ 1 - 0
qdf/linux/src/qdf_mem.c

@@ -929,6 +929,7 @@ static void qdf_mem_debug_exit(void)
 	qdf_net_buf_debug_exit();
 	qdf_mem_debug_clean();
 	qdf_list_destroy(&qdf_mem_list);
+	qdf_spinlock_destroy(&qdf_mem_list_lock);
 }
 
 /**