From 3550cd7a113e17c4e7ced8acbd7f14a3a73586ed Mon Sep 17 00:00:00 2001 From: Mohammed Shafi Shajakhan Date: Sat, 24 Sep 2011 21:07:16 +0530 Subject: [PATCH] ath9k: disable interrupt before free_irq free_irq claims that for a shared IRQ the caller must ensure that the interrupt is disabled on the card it drives before calling it. will soon test and send a proper patch Signed-off-by: Mohammed Shafi Shajakhan --- drivers/net/wireless/ath/ath9k/pci.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/drivers/net/wireless/ath/ath9k/pci.c b/drivers/net/wireless/ath/ath9k/pci.c index d67d6ee..35537ca 100644 --- a/drivers/net/wireless/ath/ath9k/pci.c +++ b/drivers/net/wireless/ath/ath9k/pci.c @@ -285,11 +285,18 @@ static void ath_pci_remove(struct pci_dev *pdev) { struct ieee80211_hw *hw = pci_get_drvdata(pdev); struct ath_softc *sc = hw->priv; + struct ath_hw *ah = sc->sc_ah; void __iomem *mem = sc->mem; if (!is_ath9k_unloaded) sc->sc_ah->ah_flags |= AH_UNPLUGGED; + + /* disable interrupts */ + ah->imask &= ~ATH9K_INT_GLOBAL; + ath9k_hw_disable_interrupts(ah); + ath9k_deinit_device(sc); + free_irq(sc->irq, sc); ieee80211_free_hw(sc->hw); -- 1.7.0.4