提交 a9cbe96d 编写于 作者: F Felix Fietkau 提交者: John W. Linville

ath9k: remove the pending frames ath_txq_schedule workaround

This workaround called ath_txq_schedule whenever there were still pending
frames for a queue, but the queue depth was zero. Because of its its high
false positive probability (e.g. with paused TIDs) and because it is in
the way of other pending work (AP powersave fixes), it is better to remove
this code entirely.
Signed-off-by: NFelix Fietkau <nbd@openwrt.org>
Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
上级 598cdd52
......@@ -2144,33 +2144,6 @@ static void ath_tx_complete_poll_work(struct work_struct *work)
} else {
txq->axq_tx_inprogress = true;
}
} else {
/* If the queue has pending buffers, then it
* should be doing tx work (and have axq_depth).
* Shouldn't get to this state I think..but
* we do.
*/
if (!(sc->sc_flags & (SC_OP_OFFCHANNEL)) &&
(txq->pending_frames > 0 ||
!list_empty(&txq->axq_acq) ||
txq->stopped)) {
ath_err(ath9k_hw_common(sc->sc_ah),
"txq: %p axq_qnum: %u,"
" mac80211_qnum: %i"
" axq_link: %p"
" pending frames: %i"
" axq_acq empty: %i"
" stopped: %i"
" axq_depth: 0 Attempting to"
" restart tx logic.\n",
txq, txq->axq_qnum,
txq->mac80211_qnum,
txq->axq_link,
txq->pending_frames,
list_empty(&txq->axq_acq),
txq->stopped);
ath_txq_schedule(sc, txq);
}
}
spin_unlock_bh(&txq->axq_lock);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册