Browse Source

qcacld-3.0: Free body of message in deferred queue during unload

Free body pointer of messages pending in deferred
queue during driver unload to avoid memory leak.

Change-Id: I73e0e3f675728aa653c2c4f5d2291c260b339987
CRs-Fixed: 1003001
Nirav Shah 9 years ago
parent
commit
9bf81570ab
1 changed files with 8 additions and 0 deletions
  1. 8 0
      core/mac/src/pe/lim/lim_utils.c

+ 8 - 0
core/mac/src/pe/lim/lim_utils.c

@@ -832,6 +832,14 @@ void lim_print_mac_addr(tpAniSirGlobal pMac, tSirMacAddr macAddr, uint8_t logLev
 
 void lim_reset_deferred_msg_q(tpAniSirGlobal pMac)
 {
+	tSirMsgQ *read_msg;
+
+	if (pMac->lim.gLimDeferredMsgQ.size > 0) {
+		while ((read_msg = lim_read_deferred_msg_q(pMac)) != NULL) {
+			pe_free_msg(pMac, read_msg);
+		}
+	}
+
 	pMac->lim.gLimDeferredMsgQ.size =
 		pMac->lim.gLimDeferredMsgQ.write =
 			pMac->lim.gLimDeferredMsgQ.read = 0;