From 37864a495b1c9770eac35bc84be613cd5dfb8514 Mon Sep 17 00:00:00 2001 From: Komal Seelam Date: Wed, 10 Aug 2016 17:55:18 +0530 Subject: qcacld-2.0: Disable tasklet after WoW On SMP architectures, tasklet can be scheduled along with the bus resume, resulting in target access. Disable the tasklet after enabling WoW and enable tasklet before sending WoW disable. Change-Id: I40f32b51cb2a77f78bdc154f88c986ce645538e1 CRs-Fixed: 1052771 --- CORE/SERVICES/HIF/PCIe/if_pci.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CORE/SERVICES/HIF/PCIe/if_pci.c b/CORE/SERVICES/HIF/PCIe/if_pci.c index 8d1462a9f04b..20e2e4835ad2 100644 --- a/CORE/SERVICES/HIF/PCIe/if_pci.c +++ b/CORE/SERVICES/HIF/PCIe/if_pci.c @@ -2786,6 +2786,7 @@ __hif_pci_suspend(struct pci_dev *pdev, pm_message_t state, bool runtime_pm) msleep(10); } + tasklet_disable(&sc->intr_tq); hif_irq_record(HIF_SUSPEND_AFTER_WOW, sc); #ifdef FEATURE_WLAN_D0WOW @@ -2974,6 +2975,8 @@ skip: goto out; } + tasklet_enable(&sc->intr_tq); + if (!wma_is_wow_mode_selected(temp_module)) err = wma_resume_target(temp_module, runtime_pm); else -- cgit v1.2.3