aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k/init.c
diff options
context:
space:
mode:
authorRajkumar Manoharan <rmanohar@qca.qualcomm.com>2011-08-05 09:29:41 -0400
committerJohn W. Linville <linville@tuxdriver.com>2011-08-09 15:52:06 -0400
commite8fe7336849e469978c9bbcc435903595912c4d3 (patch)
treebed38f150ef777fdaac6a8ff90b1cd7cd0fbe216 /drivers/net/wireless/ath/ath9k/init.c
parenta844adfd7bee4edc66d337de6c33b348e83552a8 (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.c1
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,
566 ah->reg_ops.read = ath9k_ioread32; 566 ah->reg_ops.read = ath9k_ioread32;
567 ah->reg_ops.write = ath9k_iowrite32; 567 ah->reg_ops.write = ath9k_iowrite32;
568 ah->reg_ops.rmw = ath9k_reg_rmw; 568 ah->reg_ops.rmw = ath9k_reg_rmw;
569 atomic_set(&ah->intr_ref_cnt, -1);
569 sc->sc_ah = ah; 570 sc->sc_ah = ah;
570 571
571 if (!pdata) { 572 if (!pdata) {