]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
wifi: nl80211: fix nl80211_start_radar_detection return value
authorNicolas Escande <nico.escande@gmail.com>
Thu, 9 Jan 2025 16:10:40 +0000 (17:10 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 13 Jan 2025 14:34:08 +0000 (15:34 +0100)
Since the wiphy_guard changes, rdev_start_radar_detection's return value
in nl80211_start_radar_detection is ignored and we always returned 0.

Fixes: f42d22d3f796 ("wifi: cfg80211: define and use wiphy guard")
Signed-off-by: Nicolas Escande <nico.escande@gmail.com>
Link: https://patch.msgid.link/20250109161040.325742-1-nico.escande@gmail.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/wireless/nl80211.c

index 39c114265db8a706b5b94d4ea61f120861a879a5..111e47a0dc1a8d3ebb97191e018c1b5e3869dc83 100644 (file)
@@ -10159,25 +10159,26 @@ static int nl80211_start_radar_detection(struct sk_buff *skb,
 
        err = rdev_start_radar_detection(rdev, dev, &chandef, cac_time_ms,
                                         link_id);
-       if (!err) {
-               switch (wdev->iftype) {
-               case NL80211_IFTYPE_AP:
-               case NL80211_IFTYPE_P2P_GO:
-                       wdev->links[0].ap.chandef = chandef;
-                       break;
-               case NL80211_IFTYPE_ADHOC:
-                       wdev->u.ibss.chandef = chandef;
-                       break;
-               case NL80211_IFTYPE_MESH_POINT:
-                       wdev->u.mesh.chandef = chandef;
-                       break;
-               default:
-                       break;
-               }
-               wdev->links[link_id].cac_started = true;
-               wdev->links[link_id].cac_start_time = jiffies;
-               wdev->links[link_id].cac_time_ms = cac_time_ms;
+       if (err)
+               return err;
+
+       switch (wdev->iftype) {
+       case NL80211_IFTYPE_AP:
+       case NL80211_IFTYPE_P2P_GO:
+               wdev->links[0].ap.chandef = chandef;
+               break;
+       case NL80211_IFTYPE_ADHOC:
+               wdev->u.ibss.chandef = chandef;
+               break;
+       case NL80211_IFTYPE_MESH_POINT:
+               wdev->u.mesh.chandef = chandef;
+               break;
+       default:
+               break;
        }
+       wdev->links[link_id].cac_started = true;
+       wdev->links[link_id].cac_start_time = jiffies;
+       wdev->links[link_id].cac_time_ms = cac_time_ms;
 
        return 0;
 }