mwifiex: fix system freeze while reloading driver
authorAvinash Patil <patila@marvell.com>
Thu, 21 Feb 2013 05:12:58 +0000 (21:12 -0800)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 22 Feb 2013 19:50:46 +0000 (14:50 -0500)
commit48f4d91679c0e0b26747f8adbb18e5212eb6d621
treeb569e3d8640cc3ef82ac4c930d46b723dfd7dd17
parent1499d9fa54a41942973bfc2c4ab12ccc5f1e15de
mwifiex: fix system freeze while reloading driver

Unload sequence for mwifiex PCIE driver is as follows:
1. Invoking cleanup module from kernel results into
   pci_unregister_driver
2. Kernel invokes PCIE remove() handler which disconnects all
   interfaces.
3. One step during disconnect is to clean PCIE TX rings.
   During this we read txbd_rdptr from FW.

While loading driver next time, we see pci_enable_device()
results into system freeze. This may have happened because we
accessed PCI device after unregistering from bus driver.
Removing this ioread() operation resolves this bug.

Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/mwifiex/pcie.c