For some drivers and hardware may report faulty airtime, which ends up with excessive hold time (~0.9s on mt7915 multiclent tests) impacting system performance. Although issue has been fixed in driver, but it make sense to select txqi depends on a reasonable airtime reporting to prevent such a case from happening again. Tested-by: Jiao Bo <jiao.bao@xxxxxxxxxxxx> Tested-by: Sujuan Chen <sujuan.chen@xxxxxxxxxxxx> Signed-off-by: Ryder Lee <ryder.lee@xxxxxxxxxxxx> --- net/mac80211/tx.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index 6422da6690f7..0b8a8c3600f4 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c @@ -3770,6 +3770,10 @@ struct ieee80211_txq *ieee80211_next_txq(struct ieee80211_hw *hw, u8 ac) sta->airtime_weight; if (deficit < 0 || !aql_check) { + if (txqi->schedule_round == local->schedule_round[ac]) + goto out; + + txqi->schedule_round = local->schedule_round[ac]; list_move_tail(&txqi->schedule_order, &local->active_txqs[txqi->txq.ac]); goto begin; -- 2.18.0