On Tue, 2012-12-11 at 09:38 +0200, Arik Nemtsov wrote: > On Tue, Dec 11, 2012 at 1:09 AM, Luciano Coelho <coelho@xxxxxx> wrote: > > > >> So for instance we want to stop all vifs during recovery, and mark all > >> with stop reasons. That's also the reason I used the mac80211 global > >> API for stopping/waking the queues. > > > > A "global" ieee80211_iterate_active_interfaces_atomic() would do the > > same thing. ;) > > > > But I agree that it's simpler to set all possible vifs as stopped here. > > Actually your suggestion acts differently in some corner cases. > Namely, if we stop all vifs and suddenly mac80211 decides to add a > vif, then the new vif will not be stopped, and we will clear all stop > reasons for it. But the new vif should probably not be stopped in this case, if it was added after we wanted to stop all vifs. Of course it would probably be a bug if this happens while we're recovering or suspended. > Then with my version, we will trigger the the WARN_ON when waking the > queues. But this corner case is so strange that I would like a WARN_ON > there to detect it. If we do stumble across it, we can discuss various > solutions, including changing mac80211.. I agree that a WARN when that happens would be good, because it's most likely a bug. With my solution, there are other ways to warn, obviously. Maybe it would be clearer to warn if someone tries to add an interface but the "full stop" is on-going. > TLDR: Let's keep it the way it is today :) Ok, but these discussions are good because it makes us think more about the whole thing. Especially for me, now that I have a lot of stuff to catch up with. :) TDLR: I'll apply the patch with this part as it is. -- Luca. -- 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