On 2013-11-14 09:19, Sujith Manoharan wrote: > Felix Fietkau wrote: >> If the software has processed all packets, checking the hardware queue >> is unnecessary. >> >> Signed-off-by: Felix Fietkau <nbd@xxxxxxxxxxx> >> --- >> drivers/net/wireless/ath/ath9k/xmit.c | 3 +++ >> 1 file changed, 3 insertions(+) >> >> diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c >> index 09cdbcd..babb513 100644 >> --- a/drivers/net/wireless/ath/ath9k/xmit.c >> +++ b/drivers/net/wireless/ath/ath9k/xmit.c >> @@ -1786,6 +1786,9 @@ bool ath_drain_all_txq(struct ath_softc *sc) >> if (!ATH_TXQ_SETUP(sc, i)) >> continue; >> >> + if (!sc->tx.txq[i].axq_depth) >> + continue; >> + > > Shouldn't the TX queue lock be taken here ? I don't think so. Flushing the queues is only allowed if no frames are expected to be pushed by mac80211, and callsites already take the pcu lock (preventing the completion tasklet from running). - Felix -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html