Recovering from failing bgscan

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Dear List,

While debugging some network issue, I noticed that in some failure
cases, it seems wpa_supplicant does not recover from a background-scan
failure; I'm seeing something like the following in my logs:

,----
| Apr  6 10:52:37 daemon.debug wpa_supplicant[103]: bgscan simple: Request a background scan
| Apr  6 10:52:37 daemon.debug wpa_supplicant[103]: wlan0: Add radio work 'scan'@0x1b95610
| Apr  6 10:52:37 daemon.debug wpa_supplicant[103]: wlan0: First radio work item in the queue - schedule start immediately
| Apr  6 10:52:37 daemon.debug wpa_supplicant[103]: wlan0: Starting radio work 'scan'@0x1b95610 after 0.000075 second wait
| Apr  6 10:52:37 daemon.debug wpa_supplicant[103]: wlan0: nl80211: scan request
| Apr  6 10:52:38 daemon.debug wpa_supplicant[103]: nl80211: Scan trigger failed: ret=-11 (Resource temporarily unavailable)
| Apr  6 10:52:38 daemon.notice wpa_supplicant[103]: wlan0: CTRL-EVENT-SCAN-FAILED ret=-11
`----

When this happens, it seems that this also stops any _future_ attempts
to background scan.... now it seems it can "fix" this by making a small
change to scan.c, to special-case the -11 (ie., -EAGAIN) as "do it again".

,----
| modified   wpa_supplicant/scan.c
| @@ -231,8 +231,8 @@ static void wpas_trigger_scan_cb(struct wpa_radio_work *work, int deinit)
|       wpa_scan_free_params(params);
|       work->ctx = NULL;
|       if (ret) {
| -		int retry = wpa_s->last_scan_req != MANUAL_SCAN_REQ &&
| -			!wpa_s->beacon_rep_data.token;
| +		int retry = (wpa_s->last_scan_req != MANUAL_SCAN_REQ &&
| +			!wpa_s->beacon_rep_data.token) || ret == -EAGAIN;
|
|               if (wpa_s->disconnected)
|                       retry = 0;
`----

This seems to fix the problem for me, but I wonder if there is any
downsides or reason *not* to do this.

Thanks for any insights!

Kind regards,
Dirk.

--
Dirk-Jan C. Binnema                  Helsinki, Finland
e:djcb@xxxxxxxxxxxxxxx           w:www.djcbsoftware.nl
gpg: 6987 9CED 1745 9375 0F14 DA98 11DD FEA9 DCC4 A036

_______________________________________________
Hostap mailing list
Hostap@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/hostap



[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux