forked from Minki/linux
ath9k: fix queue depth accounting in ath_tx_txqaddbuf
ath_tx_txqaddbuf assumes that all the linked buffers in the queue passed to it are part of the same A-MPDU or MPDU. The CAB queue rework violates this assumption, which can cause the internal queue depth to go negative. Fix this by increasing the counter for all slots of [bf, bf->bf_lastbf] Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
68185a4b37
commit
f56e121df3
@ -1778,9 +1778,13 @@ static void ath_tx_txqaddbuf(struct ath_softc *sc, struct ath_txq *txq,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!internal) {
|
if (!internal) {
|
||||||
|
while (bf) {
|
||||||
txq->axq_depth++;
|
txq->axq_depth++;
|
||||||
if (bf_is_ampdu_not_probing(bf))
|
if (bf_is_ampdu_not_probing(bf))
|
||||||
txq->axq_ampdu_depth++;
|
txq->axq_ampdu_depth++;
|
||||||
|
|
||||||
|
bf = bf->bf_lastbf->bf_next;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user