From c5ce2905e5daa7731f908e6acb3a38674be28ef0 Mon Sep 17 00:00:00 2001 From: Govind Singh Date: Mon, 26 Oct 2015 14:32:43 +0530 Subject: [PATCH] qcacld-3.0: Free rx_buff_list in htt_detach qcacld-2.0 to qcacld-3.0 propagation rx_buff_list is not getting freed in htt_detach and causing memory leak. Change-Id: Ia9d6660674c5b4570d337cb66995fc2449145d59 CRs-Fixed: 918223 --- core/dp/htt/htt.c | 1 + core/dp/htt/htt_internal.h | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/core/dp/htt/htt.c b/core/dp/htt/htt.c index 06d0a7ea1eba..be9ece92cfdb 100644 --- a/core/dp/htt/htt.c +++ b/core/dp/htt/htt.c @@ -350,6 +350,7 @@ void htt_detach(htt_pdev_handle pdev) #endif HTT_TX_MUTEX_DESTROY(&pdev->htt_tx_mutex); HTT_TX_NBUF_QUEUE_MUTEX_DESTROY(pdev); + htt_rx_dbg_rxbuf_deinit(pdev); } /** diff --git a/core/dp/htt/htt_internal.h b/core/dp/htt/htt_internal.h index d140f028f2b6..9e9e672af27f 100644 --- a/core/dp/htt/htt_internal.h +++ b/core/dp/htt/htt_internal.h @@ -571,6 +571,18 @@ void htt_rx_dbg_rxbuf_reset(struct htt_pdev_t *pdev, } } } +/** + * htt_rx_dbg_rxbuf_deinit() - deinit debug rx buff list + * @pdev: pdev handle + * + * Return: none + */ +static inline +void htt_rx_dbg_rxbuf_deinit(struct htt_pdev_t *pdev) +{ + if (pdev->rx_buff_list) + cdf_mem_free(pdev->rx_buff_list); +} #else static inline void htt_rx_dbg_rxbuf_init(struct htt_pdev_t *pdev) @@ -590,5 +602,10 @@ void htt_rx_dbg_rxbuf_reset(struct htt_pdev_t *pdev, { return; } +static inline +void htt_rx_dbg_rxbuf_deinit(struct htt_pdev_t *pdev) +{ + return; +} #endif #endif /* _HTT_INTERNAL__H_ */