cfg80211: Do not warn on same channel at the end of CSA
authorIlan Peer <ilan.peer@intel.com>
Thu, 26 Mar 2020 13:09:43 +0000 (15:09 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 26 Mar 2020 14:50:10 +0000 (15:50 +0100)
When cfg80211_update_assoc_bss_entry() is called, there is a
verification that the BSS channel actually changed. As some APs use
CSA also for bandwidth changes, this would result with a kernel
warning.

Fix this by removing the WARN_ON().

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20200326150855.96316ada0e8d.I6710376b1b4257e5f4712fc7ab16e2b638d512aa@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/wireless/scan.c

index aef240fdf8df62dc9c15b515395db7c9ee4f1a18..328402ab64a3f681789d297bc443388fb8928419 100644 (file)
@@ -2022,7 +2022,11 @@ void cfg80211_update_assoc_bss_entry(struct wireless_dev *wdev,
 
        spin_lock_bh(&rdev->bss_lock);
 
-       if (WARN_ON(cbss->pub.channel == chan))
+       /*
+        * Some APs use CSA also for bandwidth changes, i.e., without actually
+        * changing the control channel, so no need to update in such a case.
+        */
+       if (cbss->pub.channel == chan)
                goto done;
 
        /* use transmitting bss */