diff options
author | Bob Copeland <me@bobcopeland.com> | 2010-04-07 23:55:57 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-04-08 15:24:15 -0400 |
commit | 6b5d117eddc09cd976ad8030d715f4350f598a22 (patch) | |
tree | 363e2f43aeb4d6764c74eb24bc6f9fce765c3aab /drivers/net/wireless/ath/ath5k/base.c | |
parent | 1968cc78d91c79857089713bf3f3cceb5e9c63ae (diff) |
ath5k: clean up queue manipulation
Review spotted a couple of strange invocations to
ieee80211_wake_queues that could potentially cause problems:
- queues are awakened in the calibration tasklet before
phy calibration, and then again after calibration
- queues are awakened inside reset when we're trying to
drain the ath5k transmit queues, and again after
reset is completed (in callers to ath5k_reset_wake).
In both cases the first wake is unnecessary, so remove it.
Signed-off-by: Bob Copeland <me@bobcopeland.com>
Acked-by: Bruno Randolf <br1@einfach.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath5k/base.c')
-rw-r--r-- | drivers/net/wireless/ath/ath5k/base.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c index c085a06f1e05..38c41e3c7988 100644 --- a/drivers/net/wireless/ath/ath5k/base.c +++ b/drivers/net/wireless/ath/ath5k/base.c | |||
@@ -1636,7 +1636,6 @@ ath5k_txq_cleanup(struct ath5k_softc *sc) | |||
1636 | sc->txqs[i].link); | 1636 | sc->txqs[i].link); |
1637 | } | 1637 | } |
1638 | } | 1638 | } |
1639 | ieee80211_wake_queues(sc->hw); /* XXX move to callers */ | ||
1640 | 1639 | ||
1641 | for (i = 0; i < ARRAY_SIZE(sc->txqs); i++) | 1640 | for (i = 0; i < ARRAY_SIZE(sc->txqs); i++) |
1642 | if (sc->txqs[i].setup) | 1641 | if (sc->txqs[i].setup) |
@@ -2775,7 +2774,7 @@ ath5k_tasklet_calibrate(unsigned long data) | |||
2775 | * to load new gain values. | 2774 | * to load new gain values. |
2776 | */ | 2775 | */ |
2777 | ATH5K_DBG(sc, ATH5K_DEBUG_RESET, "calibration, resetting\n"); | 2776 | ATH5K_DBG(sc, ATH5K_DEBUG_RESET, "calibration, resetting\n"); |
2778 | ath5k_reset_wake(sc); | 2777 | ath5k_reset(sc, sc->curchan); |
2779 | } | 2778 | } |
2780 | if (ath5k_hw_phy_calibrate(ah, sc->curchan)) | 2779 | if (ath5k_hw_phy_calibrate(ah, sc->curchan)) |
2781 | ATH5K_ERR(sc, "calibration of channel %u failed\n", | 2780 | ATH5K_ERR(sc, "calibration of channel %u failed\n", |