ath9k: IRQ should be disabled before calling free_irq()
ath9k frees irq even before IRQs are disabled and existing IRQs
are flushed when rfkill_register() fails.
Signed-off-by: Senthil Balasubramanian <senthilkumar@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
diff --git a/drivers/net/wireless/ath9k/main.c b/drivers/net/wireless/ath9k/main.c
index ce94edee..1ebf606 100644
--- a/drivers/net/wireless/ath9k/main.c
+++ b/drivers/net/wireless/ath9k/main.c
@@ -810,9 +810,9 @@
rfkill_free(sc->rf_kill.rfkill);
/* Deinitialize the device */
+ ath_detach(sc);
if (sc->pdev->irq)
free_irq(sc->pdev->irq, sc);
- ath_detach(sc);
pci_iounmap(sc->pdev, sc->mem);
pci_release_region(sc->pdev, 0);
pci_disable_device(sc->pdev);