On Tue, 2009-09-22 at 12:58 +0200, Holger Schurig wrote: > > 0.00000 0.00000: Initializing interface ... > > 0.08801 0.08801: Setting scan request: 0 sec 100000 usec > > 0.25167 0.16365: ioctl[SIOCGIWSCAN]: Resource temporarily unavailable > > This is because wpa_supplicant very early - in > wpa_driver_wext_finish_drv_init() - calls > wpa_driver_wext_disconnect(). This in turn sets a random 32 > character long ESSID, as a desparate means to disconnect. > > Now that an essid is set, the calling chain in the kernel > > cfg80211_netdev_notifier_call(), case NETDEV_UP > cfg80211_mgd_wext_connect() > __cfg80211_connect() > cfg80211_conn_scan( > > get's executed. This starts a scan. > > Later, when wpa_supplicant tries to get a scan result, it will > only get an -EBUSY because of net/wireless/scan.c, function > cfg80211_wext_siwscan(): > > if (rdev->scan_req) { > err = -EBUSY; > goto out; > } > > > > However, I'm wondering: if several scan commands are > supposed to add up into the BSS list anyway (and each BSS list > entry by default pruned after 15 seconds), why is it an error > to access the current state of the BSS list while a scan is > in progress? Because the scan request contains info on how to do the scan. johannes
Attachment:
signature.asc
Description: This is a digitally signed message part