diff options
author | Alexander Wetzel <Alexander@wetzel-home.de> | 2025-02-04 13:31:29 +0100 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2025-02-11 12:40:18 +0100 |
commit | 5b999006e35ea9c11116ddff7e375b256421d0af (patch) | |
tree | 5f621ac74caf1479fa1e7081ba52877467be17b4 | |
parent | 49f27f29446a5bfe633dd2cc0cfebd48a1a5e77f (diff) |
wifi: mac80211: Cleanup sta TXQs on flush
Drop the sta TXQs on flush when the drivers is not supporting
flush.
ieee80211_set_disassoc() tries to clean up everything for the sta.
But it ignored queued frames in the sta TX queues when the driver
isn't supporting the flush driver ops.
Signed-off-by: Alexander Wetzel <Alexander@wetzel-home.de>
Link: https://patch.msgid.link/20250204123129.9162-1-Alexander@wetzel-home.de
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-rw-r--r-- | net/mac80211/util.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/mac80211/util.c b/net/mac80211/util.c index f6b631faf4f7..7f02bd5891eb 100644 --- a/net/mac80211/util.c +++ b/net/mac80211/util.c @@ -687,7 +687,7 @@ void __ieee80211_flush_queues(struct ieee80211_local *local, struct ieee80211_sub_if_data *sdata, unsigned int queues, bool drop) { - if (!local->ops->flush) + if (!local->ops->flush && !drop) return; /* @@ -714,7 +714,8 @@ void __ieee80211_flush_queues(struct ieee80211_local *local, } } - drv_flush(local, sdata, queues, drop); + if (local->ops->flush) + drv_flush(local, sdata, queues, drop); ieee80211_wake_queues_by_reason(&local->hw, queues, IEEE80211_QUEUE_STOP_REASON_FLUSH, |