summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorAmitkumar Karwar <akarwar@marvell.com>2013-07-23 02:17:47 (GMT)
committerJohn W. Linville <linville@tuxdriver.com>2013-07-24 15:02:07 (GMT)
commit43ba6b9f2f5e8090f16e8efe19d17cc8ce291d22 (patch)
treedc519d71892c5225070408e19ab38e6135498ff5 /drivers
parent8795ca61e4ff3db70f2d072a28aaefc29f1a2301 (diff)
downloadlinux-fsl-qoriq-43ba6b9f2f5e8090f16e8efe19d17cc8ce291d22.tar.xz
mwifiex: add PCIe shutdown handler to avoid system hang on reboot
If reboot command is issued when device is in connected state, system hangs while booting. This issue is fixed by doing cleanup in shutdown handler. Signed-off-by: Amitkumar Karwar <akarwar@marvell.com> Signed-off-by: Bing Zhao <bzhao@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/mwifiex/pcie.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/net/wireless/mwifiex/pcie.c b/drivers/net/wireless/mwifiex/pcie.c
index 4a57eb4..dce6486 100644
--- a/drivers/net/wireless/mwifiex/pcie.c
+++ b/drivers/net/wireless/mwifiex/pcie.c
@@ -235,6 +235,14 @@ static void mwifiex_pcie_remove(struct pci_dev *pdev)
kfree(card);
}
+static void mwifiex_pcie_shutdown(struct pci_dev *pdev)
+{
+ user_rmmod = 1;
+ mwifiex_pcie_remove(pdev);
+
+ return;
+}
+
static DEFINE_PCI_DEVICE_TABLE(mwifiex_ids) = {
{
PCIE_VENDOR_ID_MARVELL, PCIE_DEVICE_ID_MARVELL_88W8766P,
@@ -268,6 +276,7 @@ static struct pci_driver __refdata mwifiex_pcie = {
.pm = &mwifiex_pcie_pm_ops,
},
#endif
+ .shutdown = mwifiex_pcie_shutdown,
};
/*