diff options
author | Johannes Berg <johannes.berg@intel.com> | 2024-03-20 09:13:59 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2024-03-25 15:39:28 +0100 |
commit | 3c9ff1a1e1d5e58f0610d408e07e372f5cf15740 (patch) | |
tree | fe7c3e6325a59c46c68415653e4d3323c6019a21 /net/mac80211/link.c | |
parent | 62bdd97598f8be82a24f556f78336b05d1c3e84b (diff) |
wifi: mac80211: don't enter idle during link switch
When doing link switch with a disjoint set of links before
and after the switch, we end up removing all channel contexts,
adding new ones later. This looks like 'idle' to the code now,
and we enter idle which also includes flushing queues. But we
can't actually flush since we don't have a link active (bound
to a channel context), and entering idle just to leave it again
is also wrong.
Fix this by passing through an indication that we shouldn't do
any idle checks in this case.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240320091155.170328bac555.If4a522a9dd3133b91983854b909a4de13aa635da@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/link.c')
-rw-r--r-- | net/mac80211/link.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/mac80211/link.c b/net/mac80211/link.c index 685ec66b4264..db49bcec5db4 100644 --- a/net/mac80211/link.c +++ b/net/mac80211/link.c @@ -358,7 +358,7 @@ static int _ieee80211_set_active_links(struct ieee80211_sub_if_data *sdata, ieee80211_teardown_tdls_peers(link); - ieee80211_link_release_channel(link); + __ieee80211_link_release_channel(link, true); } list_for_each_entry(sta, &local->sta_list, list) { |