On Tue, May 07, 2013 at 03:37:42PM +0200, Johannes Berg wrote: > Ok this is big ... Let me tackle it patch by patch I guess :-) > > > +struct mesh_local_bss { > > > + bool can_share; > > Does that even make sense? I mean, wouldn't you simply not link/create > such an entry if the given vif can't share? We could do that, but as written mpath table now wants an mbss pointer in either case. Seemed more straight-forward to just always require it even though the structures are kind of pointless for unshared vifs. > > @@ -818,6 +986,10 @@ void ieee80211_stop_mesh(struct ieee80211_sub_if_data *sdata) > > local->fif_other_bss--; > > atomic_dec(&local->iff_allmultis); > > ieee80211_configure_filter(local); > > + > > + netif_tx_stop_all_queues(sdata->dev); > > how is that related to this patch? Intent was to be sure pending queue doesn't run while we're taking out this interface (since another interface may be queueing frames here), but that can't actually happen until a later patch. So maybe it should be split out or moved later. The stop path should be revisited anyway, there's some duplication in what ieee80211_do_stop() does and this, which is really about when stop_mesh() gets called and when mbss gets freed. -- Bob Copeland %% www.bobcopeland.com -- 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