summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/mac80211/iface.c5
-rw-r--r--net/mac80211/util.c7
-rw-r--r--versions2
3 files changed, 13 insertions, 1 deletions
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
index e65431a2c3..e541b634bb 100644
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -1793,8 +1793,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;
}
/*
diff --git a/net/mac80211/util.c b/net/mac80211/util.c
index cda398d8f6..0b893e9589 100644
--- a/net/mac80211/util.c
+++ b/net/mac80211/util.c
@@ -2106,6 +2106,13 @@ int ieee80211_reconfig(struct ieee80211_local *local)
if (sdata->restart_active_links)
ieee80211_set_active_links(&sdata->vif,
sdata->restart_active_links);
+ /*
+ * If a link switch was scheduled before the restart, and ran
+ * before reconfig, it will do nothing, so re-schedule.
+ */
+ if (sdata->desired_active_links)
+ wiphy_work_queue(sdata->local->hw.wiphy,
+ &sdata->activate_links_work);
}
/* Reconfigure sched scan if it was interrupted by FW restart */
diff --git a/versions b/versions
index 9d23546dca..a0f80110de 100644
--- a/versions
+++ b/versions
@@ -2,5 +2,5 @@ BACKPORTS_VERSION="(see git)"
BACKPORTED_KERNEL_VERSION="(see git)"
BACKPORTED_KERNEL_NAME="iwlwifi"
BACKPORTS_BUILD_TSTAMP=__DATE__ \" \" __TIME__
-BACKPORTS_GIT_TRACKED="iwlwifi-stack-public:release/core87:12046:48bca211"
+BACKPORTS_GIT_TRACKED="iwlwifi-stack-public:release/core87:12047:9e52a05c"
BACKPORTS_BRANCH_TSTAMP="Apr 17 2024 13:11:40"