aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorVivek Natarajan <vnatarajan@atheros.com>2011-01-27 04:15:10 -0500
committerJohn W. Linville <linville@tuxdriver.com>2011-01-28 15:44:29 -0500
commitbdd62c067d596e2469b243af9887f46e5d47d971 (patch)
treea8839c7610f31b0e39e9e3f2972c24e6379592fc /drivers
parent22983c301f01b297a6f85de4757108c6b0eac792 (diff)
ath9k: Fix a locking related issue.
Spin_lock has been tried to be acquired twice from ath9k_tasklet to ath_reset which resulted in a machine freeze. Signed-off-by: Vivek Natarajan <vnatarajan@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/ath/ath9k/xmit.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c
index 10a3dbefaa09..d211aa7f1a3b 100644
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -563,8 +563,11 @@ static void ath_tx_complete_aggr(struct ath_softc *sc, struct ath_txq *txq,
563 563
564 rcu_read_unlock(); 564 rcu_read_unlock();
565 565
566 if (needreset) 566 if (needreset) {
567 spin_unlock_bh(&sc->sc_pcu_lock);
567 ath_reset(sc, false); 568 ath_reset(sc, false);
569 spin_lock_bh(&sc->sc_pcu_lock);
570 }
568} 571}
569 572
570static u32 ath_lookup_rate(struct ath_softc *sc, struct ath_buf *bf, 573static u32 ath_lookup_rate(struct ath_softc *sc, struct ath_buf *bf,