diff options
author | Miri Korenblit <miriam.rachel.korenblit@intel.com> | 2024-04-15 11:27:13 +0300 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2024-04-19 10:14:29 +0200 |
commit | c6d075be966ddc1f08f843f78a82d092e5e4362e (patch) | |
tree | 3e2df66ccf5a93c78528fdc1a8c9932add01a59c /net/mac80211/iface.c | |
parent | 570944a094c24ee3a09b2cb5e580063cfde64d7a (diff) |
wifi: mac80211: defer link switch work in reconfig
If a link switch work was queued, and then a restart happened, the
worker might be executed before the reconfig, and obviously it will fail
(the HW might not respond to updates etc.)
So, don't perform the switch if we are in reconfig, instead - do it
at the end of the reconfig.
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240415112355.1ef1008e3a0a.I19add3f2152dcfd55a759de97b1d09265c1cde98@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/iface.c')
-rw-r--r-- | net/mac80211/iface.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c index ef6b0fc82d02..dc42902e2693 100644 --- a/net/mac80211/iface.c +++ b/net/mac80211/iface.c @@ -1699,8 +1699,13 @@ static void ieee80211_activate_links_work(struct wiphy *wiphy, struct ieee80211_sub_if_data *sdata = container_of(work, struct ieee80211_sub_if_data, activate_links_work); + struct ieee80211_local *local = wiphy_priv(wiphy); + + if (local->in_reconfig) + return; ieee80211_set_active_links(&sdata->vif, sdata->desired_active_links); + sdata->desired_active_links = 0; } /* |