]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: mac80211: Update csa_finalize to use link_id
authorAditya Kumar Singh <aditya.kumar.singh@oss.qualcomm.com>
Thu, 27 Nov 2025 10:11:24 +0000 (15:41 +0530)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 8 Jan 2026 12:11:01 +0000 (13:11 +0100)
With cfg80211_stop_link() adding support to stop a link in AP/P2P_GO
mode, in failure cases only the corresponding link can be stopped,
instead of stopping the whole interface.

Hence, invoke cfg80211_stop_link() directly with the link_id set for
AP/P2P_GO mode when CSA finalization fails.

Signed-off-by: Aditya Kumar Singh <aditya.kumar.singh@oss.qualcomm.com>
Signed-off-by: Manish Dharanenthiran <manish.dharanenthiran@oss.qualcomm.com>
Link: https://patch.msgid.link/20251127-stop_link-v2-2-43745846c5fd@qti.qualcomm.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/cfg.c

index c81091a5cc3a33bea9a814ce3323aaa38447dd3e..27c234948fbeef4181e8f13b70cb3028ee9ffd05 100644 (file)
@@ -4151,12 +4151,21 @@ static int __ieee80211_csa_finalize(struct ieee80211_link_data *link_data)
 static void ieee80211_csa_finalize(struct ieee80211_link_data *link_data)
 {
        struct ieee80211_sub_if_data *sdata = link_data->sdata;
+       int link_id = -1;
 
        if (__ieee80211_csa_finalize(link_data)) {
                sdata_info(sdata, "failed to finalize CSA on link %d, disconnecting\n",
                           link_data->link_id);
-               cfg80211_stop_iface(sdata->local->hw.wiphy, &sdata->wdev,
-                                   GFP_KERNEL);
+               if (sdata->vif.type == NL80211_IFTYPE_AP ||
+                   sdata->vif.type == NL80211_IFTYPE_P2P_GO)
+                       /*
+                        * link_id is expected only for AP/P2P_GO type
+                        * currently
+                        */
+                       link_id = link_data->link_id;
+
+               cfg80211_stop_link(sdata->local->hw.wiphy, &sdata->wdev,
+                                  link_id, GFP_KERNEL);
        }
 }