Skip to content

Commit

Permalink
ath9k: Handle fatal interrupts properly
Browse files Browse the repository at this point in the history
When a fatal interrupt is received or it is detected that the baseband
has hung, the chip has to be reset immediately.  Otherwise, we end up
processing spurious interrupts. Ensure that we bail out properly in
the ISR when the reset work hasn't completed yet.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Sujith Manoharan authored and John W. Linville committed Jun 6, 2012
1 parent 781b14a commit b74713d
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 1 deletion.
1 change: 1 addition & 0 deletions drivers/net/wireless/ath/ath9k/ath9k.h
Original file line number Diff line number Diff line change
Expand Up @@ -611,6 +611,7 @@ enum sc_op_flags {
SC_OP_TSF_RESET,
SC_OP_ANI_RUN,
SC_OP_PRIM_STA_VIF,
SC_OP_HW_RESET,
};

/* Powersave flags */
Expand Down
7 changes: 6 additions & 1 deletion drivers/net/wireless/ath/ath9k/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,8 @@ static bool ath_complete_reset(struct ath_softc *sc, bool start)

ath9k_cmn_update_txpow(ah, sc->curtxpow,
sc->config.txpowlimit, &sc->curtxpow);

clear_bit(SC_OP_HW_RESET, &sc->sc_flags);
ath9k_hw_set_interrupts(ah);
ath9k_hw_enable_interrupts(ah);

Expand Down Expand Up @@ -362,6 +364,7 @@ void ath9k_tasklet(unsigned long data)

RESET_STAT_INC(sc, type);
#endif
set_bit(SC_OP_HW_RESET, &sc->sc_flags);
ieee80211_queue_work(sc->hw, &sc->hw_reset_work);
goto out;
}
Expand Down Expand Up @@ -438,12 +441,14 @@ irqreturn_t ath_isr(int irq, void *dev)
if (test_bit(SC_OP_INVALID, &sc->sc_flags))
return IRQ_NONE;


/* shared irq, not for us */

if (!ath9k_hw_intrpend(ah))
return IRQ_NONE;

if(test_bit(SC_OP_HW_RESET, &sc->sc_flags))
return IRQ_HANDLED;

/*
* Figure out the reason(s) for the interrupt. Note
* that the hal returns a pseudo-ISR that may include
Expand Down

0 comments on commit b74713d

Please sign in to comment.