2010-05-26 00:00:28

by Charles Gordon

[permalink] [raw]
Subject: Is there a bug in 2.6.29-rc8 support of Ad-Hoc mode?

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.