diff options
author | Rajkumar Manoharan <rmanohar@qca.qualcomm.com> | 2011-08-05 18:59:41 +0530 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-08-09 15:52:06 -0400 |
commit | e8fe7336849e469978c9bbcc435903595912c4d3 (patch) | |
tree | bed38f150ef777fdaac6a8ff90b1cd7cd0fbe216 /drivers/net/wireless/ath/ath9k/init.c | |
parent | a844adfd7bee4edc66d337de6c33b348e83552a8 (diff) |
ath9k: Use atomic reference count for interrupt ops
Let us enable/disable interrupts based on reference count.
By doing this we can ensure that interrupts are never be
enabled in the middle of tasklet processing. Instead of
addressing corner cases like "ath9k: avoid enabling interrupts
while processing rx", this approach handles it in generic manner.
Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/init.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/init.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c index d99f188dfcf..db38a58e752 100644 --- a/drivers/net/wireless/ath/ath9k/init.c +++ b/drivers/net/wireless/ath/ath9k/init.c @@ -566,6 +566,7 @@ static int ath9k_init_softc(u16 devid, struct ath_softc *sc, ah->reg_ops.read = ath9k_ioread32; ah->reg_ops.write = ath9k_iowrite32; ah->reg_ops.rmw = ath9k_reg_rmw; + atomic_set(&ah->intr_ref_cnt, -1); sc->sc_ah = ah; if (!pdata) { |