wifi: mac80211: fix double SW scan stop
authorJohannes Berg <johannes.berg@intel.com>
Fri, 2 Sep 2022 14:12:55 +0000 (16:12 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Sat, 3 Sep 2022 15:03:29 +0000 (17:03 +0200)
When we stop a not-yet-started scan, we erroneously call
into the driver, causing a sequence of sw_scan_start()
followed by sw_scan_complete() twice. This will cause a
warning in hwsim with next in line commit that validates
the address passed to wmediumd/virtio. Fix this by doing
the calls only if we were actually scanning.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/scan.c

index fa8ddf5..a309645 100644 (file)
@@ -482,7 +482,7 @@ static void __ieee80211_scan_completed(struct ieee80211_hw *hw, bool aborted)
        /* Set power back to normal operating levels. */
        ieee80211_hw_config(local, 0);
 
-       if (!hw_scan) {
+       if (!hw_scan && was_scanning) {
                ieee80211_configure_filter(local);
                drv_sw_scan_complete(local, scan_sdata);
                ieee80211_offchannel_return(local);