ath5k: Always free tx buffers before reset
* Always free tx buffers before reset, since we also empty hw queues. If we don't and a queue gets stuck, we'll never decrease txq_len and sw will keep thinking the queue is still stuck even after reset. Signed-off-by: Nick Kossifidis <mickflemm@gmail.com> Tested-by: Sedat Dilek <sedat.dilek@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
d84938c9be
commit
19252ecb67
@@ -2661,9 +2661,11 @@ ath5k_reset(struct ath5k_softc *sc, struct ieee80211_channel *chan,
|
|||||||
synchronize_irq(sc->irq);
|
synchronize_irq(sc->irq);
|
||||||
stop_tasklets(sc);
|
stop_tasklets(sc);
|
||||||
|
|
||||||
|
/* We are going to empty hw queues
|
||||||
|
* so we should also free any remaining
|
||||||
|
* tx buffers */
|
||||||
|
ath5k_drain_tx_buffs(sc);
|
||||||
if (chan) {
|
if (chan) {
|
||||||
ath5k_drain_tx_buffs(sc);
|
|
||||||
|
|
||||||
sc->curchan = chan;
|
sc->curchan = chan;
|
||||||
sc->curband = &sc->sbands[chan->band];
|
sc->curband = &sc->sbands[chan->band];
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user