summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGanesh Babu Kumaravel <kganesh@qti.qualcomm.com>2014-05-13 11:09:58 +0530
committerPitani Venkata Rajesh Kumar <c_vpitan@qti.qualcomm.com>2014-05-15 16:19:44 +0530
commitd73c6575010b9d2c2625e8bf09afe9019a76d821 (patch)
treed52ac2908a7c6a37b7f9be508307145c99982bb3
parent14a9c7abdab5f11835032c079e74a280043e7d9e (diff)
qcacld: Avoid PCIe access after suspend
There is a race where PCIe is accessed due to expiry of HIF Sleep Timer after PCI suspend happened. Currently in hif_pci_suspend() before going to suspend we are waiting for wlan_tasklet() to run to completion. But we are not taking care of HIF Sleep Timer. So fix the illegal access to PCIE by stopping the HIF Sleep Timer before going to suspend. CRs-Fixed: 663353 Change-Id: I0c06b52b2866f4cb2f7dc42ca179de5bed08a5d5
-rw-r--r--CORE/SERVICES/HIF/PCIe/if_pci.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/CORE/SERVICES/HIF/PCIe/if_pci.c b/CORE/SERVICES/HIF/PCIe/if_pci.c
index 7a85e3019ecf..c7631bb942df 100644
--- a/CORE/SERVICES/HIF/PCIe/if_pci.c
+++ b/CORE/SERVICES/HIF/PCIe/if_pci.c
@@ -1712,6 +1712,9 @@ hif_pci_suspend(struct pci_dev *pdev, pm_message_t state)
msleep(10);
}
+ /* Stop the HIF Sleep Timer */
+ HIFCancelDeferredTargetSleep(sc->hif_device);
+
pci_read_config_dword(pdev, OL_ATH_PCI_PM_CONTROL, &val);
if ((val & 0x000000ff) != 0x3) {
pci_save_state(pdev);