[WCNCR00158507] misc: fix unequal memory alloc/free count
[Description]
The debug counter didn't been protect for synchronous issue.
But the allocation/free part is fine, so protect the debug counter.
Test: WiFi scan/connection are OK
Change-Id: I02445a1812118455b80e9c428f91aced7c1b5c3d
CR-Id: WCNCR00158507
Feature: misc:
Signed-off-by: YuChe Tsai <yuche.tsai@mediatek.com>
(cherry picked from commit 7eebb33ae1cbe330b6c6359bfe6c6355e7d6fc8a)
diff --git a/mgmt/cnm_mem.c b/mgmt/cnm_mem.c
index f69e37a..3f77937 100644
--- a/mgmt/cnm_mem.c
+++ b/mgmt/cnm_mem.c
@@ -357,12 +357,12 @@
ASSERT(u4BlockNum <= MAX_NUM_OF_BUF_BLOCKS);
}
+ KAL_ACQUIRE_SPIN_LOCK(prAdapter, eRamType == RAM_TYPE_MSG ? SPIN_LOCK_MSG_BUF : SPIN_LOCK_MGT_BUF);
+
#if CFG_DBG_MGT_BUF
prBufInfo->u4AllocCount++;
#endif
- KAL_ACQUIRE_SPIN_LOCK(prAdapter, eRamType == RAM_TYPE_MSG ? SPIN_LOCK_MSG_BUF : SPIN_LOCK_MGT_BUF);
-
if ((u4BlockNum > 0) && (u4BlockNum <= MAX_NUM_OF_BUF_BLOCKS)) {
/* Convert number of block into bit cluster */
@@ -392,6 +392,10 @@
}
}
+#if CFG_DBG_MGT_BUF
+ prBufInfo->u4AllocNullCount++;
+#endif
+
/* kalMemAlloc() shall not included in spin_lock */
KAL_RELEASE_SPIN_LOCK(prAdapter, eRamType == RAM_TYPE_MSG ? SPIN_LOCK_MSG_BUF : SPIN_LOCK_MGT_BUF);
@@ -402,10 +406,8 @@
#endif
#if CFG_DBG_MGT_BUF
- prBufInfo->u4AllocNullCount++;
-
if (pvMemory)
- prAdapter->u4MemAllocDynamicCount++;
+ GLUE_INC_REF_CNT(prAdapter->u4MemAllocDynamicCount);
#endif
return pvMemory;
@@ -461,7 +463,7 @@
#endif
#if CFG_DBG_MGT_BUF
- prAdapter->u4MemFreeDynamicCount++;
+ GLUE_INC_REF_CNT(prAdapter->u4MemFreeDynamicCount);
#endif
return;
}