diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/main.c')
| -rw-r--r-- | drivers/net/wireless/ath/ath9k/main.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c index 9a72640237cb..62b0bf4fdf6b 100644 --- a/drivers/net/wireless/ath/ath9k/main.c +++ b/drivers/net/wireless/ath/ath9k/main.c | |||
| @@ -285,6 +285,7 @@ static int ath_reset_internal(struct ath_softc *sc, struct ath9k_channel *hchan) | |||
| 285 | 285 | ||
| 286 | __ath_cancel_work(sc); | 286 | __ath_cancel_work(sc); |
| 287 | 287 | ||
| 288 | disable_irq(sc->irq); | ||
| 288 | tasklet_disable(&sc->intr_tq); | 289 | tasklet_disable(&sc->intr_tq); |
| 289 | tasklet_disable(&sc->bcon_tasklet); | 290 | tasklet_disable(&sc->bcon_tasklet); |
| 290 | spin_lock_bh(&sc->sc_pcu_lock); | 291 | spin_lock_bh(&sc->sc_pcu_lock); |
| @@ -331,6 +332,7 @@ static int ath_reset_internal(struct ath_softc *sc, struct ath9k_channel *hchan) | |||
| 331 | r = -EIO; | 332 | r = -EIO; |
| 332 | 333 | ||
| 333 | out: | 334 | out: |
| 335 | enable_irq(sc->irq); | ||
| 334 | spin_unlock_bh(&sc->sc_pcu_lock); | 336 | spin_unlock_bh(&sc->sc_pcu_lock); |
| 335 | tasklet_enable(&sc->bcon_tasklet); | 337 | tasklet_enable(&sc->bcon_tasklet); |
| 336 | tasklet_enable(&sc->intr_tq); | 338 | tasklet_enable(&sc->intr_tq); |
| @@ -512,9 +514,6 @@ irqreturn_t ath_isr(int irq, void *dev) | |||
| 512 | if (!ah || test_bit(ATH_OP_INVALID, &common->op_flags)) | 514 | if (!ah || test_bit(ATH_OP_INVALID, &common->op_flags)) |
| 513 | return IRQ_NONE; | 515 | return IRQ_NONE; |
| 514 | 516 | ||
| 515 | if (!AR_SREV_9100(ah) && test_bit(ATH_OP_HW_RESET, &common->op_flags)) | ||
| 516 | return IRQ_NONE; | ||
| 517 | |||
| 518 | /* shared irq, not for us */ | 517 | /* shared irq, not for us */ |
| 519 | if (!ath9k_hw_intrpend(ah)) | 518 | if (!ath9k_hw_intrpend(ah)) |
| 520 | return IRQ_NONE; | 519 | return IRQ_NONE; |
| @@ -529,7 +528,7 @@ irqreturn_t ath_isr(int irq, void *dev) | |||
| 529 | ath9k_debug_sync_cause(sc, sync_cause); | 528 | ath9k_debug_sync_cause(sc, sync_cause); |
| 530 | status &= ah->imask; /* discard unasked-for bits */ | 529 | status &= ah->imask; /* discard unasked-for bits */ |
| 531 | 530 | ||
| 532 | if (AR_SREV_9100(ah) && test_bit(ATH_OP_HW_RESET, &common->op_flags)) | 531 | if (test_bit(ATH_OP_HW_RESET, &common->op_flags)) |
| 533 | return IRQ_HANDLED; | 532 | return IRQ_HANDLED; |
| 534 | 533 | ||
| 535 | /* | 534 | /* |
