aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorSenthil Balasubramanian <senthilkumar@atheros.com>2011-03-23 13:37:22 -0400
committerJohn W. Linville <linville@tuxdriver.com>2011-03-23 15:22:05 -0400
commitd78f4b3e2c4dfb9487624f7157af04ab4260e189 (patch)
treed3fe0b228927b10757f31a8e8b7903748057e3a9 /drivers/net
parent19b9675069cb06ae17d1595ac517d475d75e6bb9 (diff)
ath9k: Fix TX queue stuck issue.
commit 86271e460a66003dc1f4cbfd845adafb790b7587 introduced a regression that caused mac80211 queues in stopped state. ath_drain_all_txq is called in driver flush which would reset the stopped flag and the mac80211 queues were never started after that. iperf traffic is completely stalled due to this issue. Restart the mac80211 queues in driver flush only if the txqs were drained. Signed-off-by: Senthil Balasubramanian <senthilkumar@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/ath/ath9k/main.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
index 115f162c617a..524825720a09 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -2160,6 +2160,8 @@ static void ath9k_flush(struct ieee80211_hw *hw, bool drop)
2160 if (!ath_drain_all_txq(sc, false)) 2160 if (!ath_drain_all_txq(sc, false))
2161 ath_reset(sc, false); 2161 ath_reset(sc, false);
2162 2162
2163 ieee80211_wake_queues(hw);
2164
2163out: 2165out:
2164 ieee80211_queue_delayed_work(hw, &sc->tx_complete_work, 0); 2166 ieee80211_queue_delayed_work(hw, &sc->tx_complete_work, 0);
2165 mutex_unlock(&sc->mutex); 2167 mutex_unlock(&sc->mutex);