diff options
| author | Linux Build Service Account <lnxbuild@quicinc.com> | 2017-07-19 17:20:49 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-07-19 17:20:49 -0700 |
| commit | 347dbf727762464419c5ccb5919f0c234fd38e23 (patch) | |
| tree | b1f8c0908343339d9fbb3ccb844fdc96866a7cc0 /drivers/platform | |
| parent | 8a9f65f16a3a22c4f391a80a9e48181732c0a723 (diff) | |
| parent | b10627f358d147d9cbab0ab547997940de8a6c83 (diff) | |
Merge "msm: ipa3: Add spinlock to avoid deleting already deleted list"
Diffstat (limited to 'drivers/platform')
| -rw-r--r-- | drivers/platform/msm/ipa/ipa_v3/ipa_dp.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa_dp.c b/drivers/platform/msm/ipa/ipa_v3/ipa_dp.c index 5fe425ea7655..034b7fc45d8d 100644 --- a/drivers/platform/msm/ipa/ipa_v3/ipa_dp.c +++ b/drivers/platform/msm/ipa/ipa_v3/ipa_dp.c @@ -2093,6 +2093,8 @@ static void ipa3_cleanup_wlan_rx_common_cache(void) struct ipa3_rx_pkt_wrapper *rx_pkt; struct ipa3_rx_pkt_wrapper *tmp; + spin_lock_bh(&ipa3_ctx->wc_memb.wlan_spinlock); + list_for_each_entry_safe(rx_pkt, tmp, &ipa3_ctx->wc_memb.wlan_comm_desc_list, link) { list_del(&rx_pkt->link); @@ -2113,6 +2115,8 @@ static void ipa3_cleanup_wlan_rx_common_cache(void) IPAERR("wlan comm buff total cnt: %d\n", ipa3_ctx->wc_memb.wlan_comm_total_cnt); + spin_unlock_bh(&ipa3_ctx->wc_memb.wlan_spinlock); + } static void ipa3_alloc_wlan_rx_common_cache(u32 size) @@ -2150,11 +2154,13 @@ static void ipa3_alloc_wlan_rx_common_cache(u32 size) goto fail_dma_mapping; } + spin_lock_bh(&ipa3_ctx->wc_memb.wlan_spinlock); list_add_tail(&rx_pkt->link, &ipa3_ctx->wc_memb.wlan_comm_desc_list); rx_len_cached = ++ipa3_ctx->wc_memb.wlan_comm_total_cnt; ipa3_ctx->wc_memb.wlan_comm_free_cnt++; + spin_unlock_bh(&ipa3_ctx->wc_memb.wlan_spinlock); } |
