diff options
author | Johannes Berg <johannes.berg@intel.com> | 2023-03-31 16:59:17 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2023-04-13 16:32:31 +0200 |
commit | d00800a289c9349bb659a698cbd7bc04521dc927 (patch) | |
tree | 79a5dea4d4d7be07b1e7b1aac8d11d77c669375e /net/mac80211/sta_info.c | |
parent | 0b75a1b1e42e07ae84e3a11d2368b418546e2bec (diff) |
wifi: mac80211: add flush_sta method
Some drivers like iwlwifi might have per-STA queues, so we
may want to flush/drop just those queues rather than all
when removing a station. Add a separate method for that.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/sta_info.c')
-rw-r--r-- | net/mac80211/sta_info.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c index ce7c3b997269..1400512e0dde 100644 --- a/net/mac80211/sta_info.c +++ b/net/mac80211/sta_info.c @@ -1299,8 +1299,12 @@ static void __sta_info_destroy_part2(struct sta_info *sta) * frames sitting on hardware queues might be sent out without * any encryption at all. */ - if (local->ops->set_key) - ieee80211_flush_queues(local, sta->sdata, false); + if (local->ops->set_key) { + if (local->ops->flush_sta) + drv_flush_sta(local, sta->sdata, sta); + else + ieee80211_flush_queues(local, sta->sdata, false); + } /* now keys can no longer be reached */ ieee80211_free_sta_keys(local, sta); |