Hi Gruszka, On Fri, 2010-09-03 at 04:57 -0700, Stanislaw Gruszka wrote: > Avoid iwlwifi hardware scanning race conditions > that may lead to not call ieee80211_scan_completed() (what in > consequences gives "WARNING: at net/wireless/core.c:614 > wdev_cleanup_work+0xb7/0xf0"), or call iee80211_scan_completed() more > then once (what gives " WARNING: at net/mac80211/scan.c:312 > ieee80211_scan_completed+0x5f/0x1f1"). > > First problem (warning in wdev_cleanup_work) make any further scan > request from cfg80211 are ignored by mac80211 with EBUSY error, > hence NetworkManager can not perform successful scan and not allow > to establish a new connection. So after suspend/resume (but maybe > not only then) user is not able to connect to wireless network again. > > We can not rely on that the commands (start and abort scan) are > successful. Even if they are successfully send to the hardware, we can > not get back notification from firmware (i.e. firmware hung or was > reseted), or we can get notification when we actually perform abort > scan in driver code or after that. > > To assure we call ieee80211_scan_completed() only once when scan > was started we use SCAN_SCANNING bit. Code path, which first clear > STATUS_SCANNING bit will call ieee80211_scan_completed(). > We do this in many cases, in scan complete notification, scan > abort, device down, etc. Each time we check SCANNING bit. > A lot of changes, great jobs. How much test you done for different devices? Scan is a very important function and I am also not expert in this area. Thanks Wey -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html