I am trying to get a driver I'm developing to work with Ad-Hoc mode on
Linux 2.6.29-rc8. I am running into a problem. I have traced it down
to the routine ieee80211_scan_work. I use the following commands to
start Ad-Hoc mode:
ifconfig wlan0 down
iwconfig wlan0 mode Ad-Hoc essid "AdHocID"
ifconfig wlan0 up
What happens is that the iwconfig command starts a scan for other PCs
using the AdHocID before the second ifconfig command is executed
(while the interface is still down). When ieee80211_scan_work is
executed, it bails out at this statement:
/*
* Avoid re-scheduling when the sdata is going away.
*/
if (!netif_running(sdata->dev))
return;
This aborts the scan, but leaves local->sw_scanning set. This
prevents future scans from running. When ieee80211_start_scan
executes it bails out at this statement:
if (local->sw_scanning || local->hw_scanning) {
if (local->scan_sdata == scan_sdata)
return 0;
return -EBUSY;
}
Can someone either confirm that this is a known problem with
2.6.28-rc8, or tell me what my driver could be doing to cause this
problem?
Thanks for any help you can provide.