ath5k: don't mask off interrupt bits
authorBob Copeland <me@bobcopeland.com>
Sun, 15 Feb 2009 17:06:09 +0000 (12:06 -0500)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 27 Feb 2009 19:52:36 +0000 (14:52 -0500)
Since interrupts are already masked by the hardware, there's no need to
discard interrupt bits in the ISR itself.  Also, in ath5k_beacon_config
we mask off a couple of bits without locking, so doing this mask in
software can lead to unhandled beacon timer and beacon miss interrupts.

Changes-licensed-under: 3-Clause-BSD

Signed-off-by: Bob Copeland <me@bobcopeland.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath5k/base.c

index 6837ca9f3831ab3bc2af2859a8687eddc1c6cf02..d930c10a7e5202f16a46c59539ca95b60cb9282a 100644 (file)
@@ -2408,16 +2408,9 @@ ath5k_intr(int irq, void *dev_id)
                return IRQ_NONE;
 
        do {
-               /*
-                * Figure out the reason(s) for the interrupt.  Note
-                * that get_isr returns a pseudo-ISR that may include
-                * bits we haven't explicitly enabled so we mask the
-                * value to insure we only process bits we requested.
-                */
                ath5k_hw_get_isr(ah, &status);          /* NB: clears IRQ too */
                ATH5K_DBG(sc, ATH5K_DEBUG_INTR, "status 0x%x/0x%x\n",
                                status, sc->imask);
-               status &= sc->imask; /* discard unasked for bits */
                if (unlikely(status & AR5K_INT_FATAL)) {
                        /*
                         * Fatal errors are unrecoverable.