On Wed, 22 Sep 2010 16:39:57 +0200 Johannes Berg <johannes@xxxxxxxxxxxxxxxx> wrote: > On Wed, 2010-09-22 at 10:57 +0200, Stanislaw Gruszka wrote: > > > So why we can see this warning? During my testing I saw it also. > > There is race regarding SCAN_HW_SCANNING bit, usually we set/clear > > this bit under local->mtx, but not in ieee80211_restart_hw() > > > > cpu0 cpu1 > > __ieee80211_start_scan > > __set_bit(SCAN_HW_SCANNING, &local->scanning); > > > > iwl_bg_restart() > > ieee80211_restart_hw() > > WARN > > Why can't iwlwifi's bg_restart() force-abort the scan? It'll be aborted > anyway... Yes, bg_restart() force scan abort, but not if no scan is pending. It looks like that: cpu0 cpu1 iwl_bg_restart() __iwl_down() iwl_scan_cancel_timeout (do nothing since no pending scan) __ieee80211_start_scan __set_bit(SCAN_HW_SCANNING, &local->scanning); ieee80211_restart_hw() WARN drv_hw_scan iwl_mac_hw_scan (OK, fail new scan, return error) local->scanning = 0; -- 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