]> git.baikalelectronics.ru Git - kernel.git/commit
mac80211: make ieee80211_schedule_txq schedule empty TXQs
authorFelix Fietkau <nbd@nbd.name>
Mon, 18 Mar 2019 11:00:58 +0000 (12:00 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 8 Apr 2019 11:31:31 +0000 (13:31 +0200)
commitf5c599d49f6187f0e3f60882650653a005f63a37
tree60e63e9c3911eb5a9993200886365a9deac37172
parentbaa7e9996e73cc8970a513ead01bbbdf51732efc
mac80211: make ieee80211_schedule_txq schedule empty TXQs

Currently there is no way for the driver to signal to mac80211 that it should
schedule a TXQ even if there are no packets on the mac80211 part of that queue.
This is problematic if the driver has an internal retry queue to deal with
software A-MPDU retry.

This patch changes the behavior of ieee80211_schedule_txq to always schedule
the queue, as its only user (ath9k) seems to expect such behavior already:
it calls this function on tx status and on powersave wakeup whenever its
internal retry queue is not empty.

Also add an extra argument to ieee80211_return_txq to get the same behavior.

This fixes an issue on ath9k where tx queues with packets to retry (and no
new packets in mac80211) would not get serviced.

Fixes: 8282e2cbe0025 ("ath9k: Switch to mac80211 TXQ scheduling and airtime APIs")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Acked-by: Toke Høiland-Jørgensen <toke@redhat.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/ath/ath10k/htt_rx.c
drivers/net/wireless/ath/ath10k/mac.c
drivers/net/wireless/ath/ath9k/xmit.c
include/net/mac80211.h
net/mac80211/tx.c