Christian Lamparter wrote: > well, ieee80211_sta_monitor_work - which probes the AP every now and then - > didn't check if we're scanning. > The attached diff survives a non-stop scanning without throwing the WARN in > rate_lowest_index once. > > However, I'm not so sure about the locking for hw_scanning and sw_scanning. > It looks like only scan.c manipulates them under the scan mutex. > But then, do we need locking for a single threaded workqueue? guess not. > --- > Larry, > > here's another _fix_ which might even fix the problem after all ;-) > > Regards, > Chr > --- > diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c > index 18dad22..4833e7c 100644 > --- a/net/mac80211/mlme.c > +++ b/net/mac80211/mlme.c > @@ -2210,6 +2210,9 @@ static void ieee80211_sta_monitor_work(struct work_struct *work) > container_of(work, struct ieee80211_sub_if_data, > u.mgd.monitor_work); > > + if (sdata->local->sw_scanning || sdata->local->hw_scanning) > + return; > + > ieee80211_mgd_probe_ap(sdata, false); > } Yes - this patch gets rid of the warnings. Thanks, Larry -- 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