On Thu, 2010-07-22 at 15:50 +0530, Vasanthakumar Thiagarajan wrote: > On Thu, Jul 22, 2010 at 03:44:54PM +0530, Johannes Berg wrote: > > On Thu, 2010-07-22 at 15:41 +0530, Vasanthakumar Thiagarajan wrote: > > > > Just go and implement flush() and all these issues will go away and you > > > > will stop thinking that you need to touch queues from channel switching. > > > > They have nothing to do with each other. > > > > > > > > > I thought about it also, but i'll hit the same issue > > > when ieee80211_scan_state_leave_oper_channel() flushes > > > the hw tx queues where driver is not supposed to wake > > > up the queues as drv_flush() is called only after stopping > > > all queues. > > > > I don't get it. The driver can start/stop queues at _any_ time it wants > > to. Regardless of what mac80211 is doing, all that goes via > > IEEE80211_QUEUE_STOP_REASON_DRIVER which is never touched by mac80211 > > itself. > > My understanding is, if driver wakes up the queues when operating on > a off-channel, it would get data frames from upper layer for > transmission but it should not send out these frames as the hw is on > non-operating channel. Ok, that seems to be true, but only because we don't properly manage the interface queue stop in mac80211. Should be an easy fix there. johannes -- 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