summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Wetzel <Alexander@wetzel-home.de>2025-02-04 13:31:29 +0100
committerJohannes Berg <johannes.berg@intel.com>2025-02-11 12:40:18 +0100
commit5b999006e35ea9c11116ddff7e375b256421d0af (patch)
tree5f621ac74caf1479fa1e7081ba52877467be17b4
parent49f27f29446a5bfe633dd2cc0cfebd48a1a5e77f (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.c5
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,