On Thu, Jul 10, 2014 at 7:02 PM, Sachin Kulkarni <Sachin.Kulkarni@xxxxxxxxxx> wrote: > > From: Sachin Kulkarni<sachin.kulkarni@xxxxxxxxxx> > > During a hw scan ieee80211_iface_work ignores work items for all vifs. > However > after the scan complete work is requeued only for STA, ADHOC and MESH > iftypes. > This occasionally results in event processing getting delayed for iftype AP > when > it coexists with a STA, and when the scan durations are very long. > > Signed-off-by: Sachin Kulkarni<sachin.kulkarni@xxxxxxxxxx> > Cc: linux-wireless@xxxxxxxxxxxxxxx > Cc: johannes@xxxxxxxxxxxxxxxx > --- > We have a test scenario where there are 2 VIFs: one STA and one AP. The STA > is > not connected to anyone while the AP has a station connected to it. The > hardware > we are using currently has scan durations of ~8 sec and a new scan request > is > generated every 10 s. This results in a window of only 2 s when work items > can > be processed by ieee80211_iface_work. We came across scenarios where the AP > is > trying to tear down a AMPDU session, and the IEEE80211_SDATA_QUEUE_AGG_STOP > event gets queued. However the work item for this gets ignored by the > ieee80211_iface_work > since a hw scan is in progress most of the time. When the scan completes > however > the work item for the AP does not get requeued, and by the time the > IEEE80211_SDATA_QUEUE_AGG_STOP gets processed in some other work items > context, > the TX frames just keep getting queued up, since the tid has not been > destroyed. > This results in disconnections since things like ARP timeouts etc start > happening. > --- afaict, there doesn't seem to be any good reason to exit ieee80211_iface_work in case of hw scan (rather than sw_scan). we had a patch for it (one-liner), but it probably got forgotten in some internal tree :) Eliad. -- 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