diff options
| author | Ganesh Babu Kumaravel <kganesh@qti.qualcomm.com> | 2014-05-13 11:09:58 +0530 |
|---|---|---|
| committer | Pitani Venkata Rajesh Kumar <c_vpitan@qti.qualcomm.com> | 2014-05-15 16:19:44 +0530 |
| commit | d73c6575010b9d2c2625e8bf09afe9019a76d821 (patch) | |
| tree | d52ac2908a7c6a37b7f9be508307145c99982bb3 | |
| parent | 14a9c7abdab5f11835032c079e74a280043e7d9e (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.c | 3 |
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); |
