• Helmut Schaa's avatar
    mac80211: handle failed scan requests in STA mode · af88b907
    Helmut Schaa authored
    If cfg80211 requests a scan it awaits either a return code != 0 from
    the scan function or the cfg80211_scan_done to be called. In case of
    a STA mac80211's scan function ever returns 0 and queues the scan request.
    If ieee80211_sta_work is executed and ieee80211_start_scan fails for
    some reason cfg80211_scan_done will never be called but cfg80211 still
    thinks the scan was triggered successfully and will refuse any future
    scan requests due to drv->scan_req not being cleaned up.
    
    If a scan is triggered from within the MLME a similar problem appears. If
    ieee80211_start_scan returns an error, local->scan_req will not be reset
    and mac80211 will refuse any future scan requests.
    
    Hence, in both cases call ieee80211_scan_failed (which notifies cfg80211
    and resets local->scan_req) if ieee80211_start_scan returns an error.
    Signed-off-by: default avatarHelmut Schaa <helmut.schaa@googlemail.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    af88b907
mlme.c 56.1 KB