--- a/net/mac80211/scan.c +++ b/net/mac80211/scan.c @@ -287,8 +287,6 @@ void ieee80211_scan_completed(struct iee local->scanning = 0; local->scan_channel = NULL; - drv_sw_scan_complete(local); - /* we only have to protect scan_req and hw/sw scan */ mutex_unlock(&local->scan_mtx); @@ -298,6 +296,8 @@ void ieee80211_scan_completed(struct iee ieee80211_configure_filter(local); + drv_sw_scan_complete(local); + ieee80211_offchannel_return(local, true); done: