Message ID | 1497508008-9536-2-git-send-email-qca_merez@qca.qualcomm.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 5b49ee9f13c7c3079117fc07ee603656c809e6c2 |
Delegated to: | Kalle Valo |
Headers | show |
Maya Erez <qca_merez@qca.qualcomm.com> wrote: > After calling platform_ops.uninit() it is still possible to invoke > platform callbacks. > To prevent this, zero platform_ops right after invoking uninit. > > Signed-off-by: Dedy Lansky <qca_dlansky@qca.qualcomm.com> > Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com> > Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com> 3 patches applied to ath-next branch of ath.git, thanks. 5b49ee9f13c7 wil6210: prevent platform callbacks after uninit fe9ee51e6a43 wil6210: add support for PCIe D3hot in system suspend a520b49ec155 wil6210: remove ioctl interface
diff --git a/drivers/net/wireless/ath/wil6210/pcie_bus.c b/drivers/net/wireless/ath/wil6210/pcie_bus.c index bf9f265..a874d8d 100644 --- a/drivers/net/wireless/ath/wil6210/pcie_bus.c +++ b/drivers/net/wireless/ath/wil6210/pcie_bus.c @@ -191,6 +191,13 @@ static int wil_platform_rop_fw_recovery(void *wil_handle) return 0; } +static void wil_platform_ops_uninit(struct wil6210_priv *wil) +{ + if (wil->platform_ops.uninit) + wil->platform_ops.uninit(wil->platform_handle); + memset(&wil->platform_ops, 0, sizeof(wil->platform_ops)); +} + static int wil_pcie_probe(struct pci_dev *pdev, const struct pci_device_id *id) { struct wil6210_priv *wil; @@ -327,8 +334,7 @@ static int wil_pcie_probe(struct pci_dev *pdev, const struct pci_device_id *id) err_disable_pdev: pci_disable_device(pdev); err_plat: - if (wil->platform_ops.uninit) - wil->platform_ops.uninit(wil->platform_handle); + wil_platform_ops_uninit(wil); if_free: wil_if_free(wil); @@ -357,8 +363,7 @@ static void wil_pcie_remove(struct pci_dev *pdev) pci_iounmap(pdev, csr); pci_release_region(pdev, 0); pci_disable_device(pdev); - if (wil->platform_ops.uninit) - wil->platform_ops.uninit(wil->platform_handle); + wil_platform_ops_uninit(wil); wil_if_free(wil); }