Could part of it be as simple as not checking for '<='  but only < in
txq_max_pending below?

in ath_tx_start:

        ath_txq_lock(sc, txq);
        if (txq == sc->tx.txq_map[q] &&
            ++txq->pending_frames > sc->tx.txq_max_pending[q] &&
            !txq->stopped) {
                ieee80211_stop_queue(sc->hw, q);
                txq->stopped = true;
        }

in ath_txq_skb_done:

        if (txq->stopped &&
            txq->pending_frames < sc->tx.txq_max_pending[q]) {
                ieee80211_wake_queue(sc->hw, q);
                txq->stopped = false;
        }


-- 
Dave Täht
_______________________________________________
Cerowrt-devel mailing list
[email protected]
https://lists.bufferbloat.net/listinfo/cerowrt-devel

Reply via email to