Hi, On Thu, Sep 1, 2011 at 11:54 AM, Clemens Buchacher <drizzd@xxxxxx> wrote: > Mohammed Shafi <shafi.wireless@xxxxxxxxx> wrote: >> >>i am bit confused looking at bug comments. please correct me. >>the bug comments say that disabling/making the Network-Manager to >>sleep triggers the problem. > That is correct. is the issue still seen? any improvement with the attached patch.. will just again take a look at this thread and ath_pci_probe once i finish my work. thanks! > -- shafi
From 3550cd7a113e17c4e7ced8acbd7f14a3a73586ed Mon Sep 17 00:00:00 2001 From: Mohammed Shafi Shajakhan <mohammed@xxxxxxxxxxxxxxxx> 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 <mohammed@xxxxxxxxxxxxxxxx> --- 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