summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUtkarsh Saxena <usaxena@codeaurora.org>2017-03-13 14:58:40 +0530
committerUtkarsh Saxena <usaxena@codeaurora.org>2017-03-13 14:58:40 +0530
commit7e5e33b416b3a995f88fead3d9a32e178382a7e0 (patch)
tree0fce29c962ffad0ab07c567c6ee2d2eded7980b4
parent51740526b9b90ef772ba2c3c6b288f0d1688bb10 (diff)
msm: ipa: Add spinlock to avoid deleting already deleted list
There is a chance of deleting, already deleted list in ipa_cleanup_wlan_rx_common_cache API. Protect the wlan_comm_desc_list, with the spinlock to avoid this deletion. Change-Id: Ia05d47d7b54540eff6ef20f86dee410152457caa Acked-by: Mohammed Javid <mjavid@qti.qualcomm.com> Signed-off-by: Utkarsh Saxena <usaxena@codeaurora.org>
-rw-r--r--drivers/platform/msm/ipa/ipa_v2/ipa_dp.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/platform/msm/ipa/ipa_v2/ipa_dp.c b/drivers/platform/msm/ipa/ipa_v2/ipa_dp.c
index a2665c9e9688..25364e8efa38 100644
--- a/drivers/platform/msm/ipa/ipa_v2/ipa_dp.c
+++ b/drivers/platform/msm/ipa/ipa_v2/ipa_dp.c
@@ -1974,6 +1974,8 @@ static void ipa_cleanup_wlan_rx_common_cache(void)
struct ipa_rx_pkt_wrapper *rx_pkt;
struct ipa_rx_pkt_wrapper *tmp;
+ spin_lock_bh(&ipa_ctx->wc_memb.wlan_spinlock);
+
list_for_each_entry_safe(rx_pkt, tmp,
&ipa_ctx->wc_memb.wlan_comm_desc_list, link) {
list_del(&rx_pkt->link);
@@ -1994,6 +1996,8 @@ static void ipa_cleanup_wlan_rx_common_cache(void)
IPAERR("wlan comm buff total cnt: %d\n",
ipa_ctx->wc_memb.wlan_comm_total_cnt);
+ spin_unlock_bh(&ipa_ctx->wc_memb.wlan_spinlock);
+
}
static void ipa_alloc_wlan_rx_common_cache(u32 size)