On Wed, 2010-09-29 at 21:57 +0200, Christian Lamparter wrote: > > > Is there a sane way to do that? > > > > Is this not sane enough? Looks OK to me, even if it adds a bit of code. > > > > It's about MONITOR_FLAG_COOK_FRAMES. This flag gives me headaches. > I wish we could make this flag "const" and don't allow it be changed > by iw dev wlanX set monitor. Ah. Then you can only specify it when creating an interface, right? Fine with me, really. > Another alternative would be to move > the "sdata->u.mntr_flag -> fif_* processing" into > ieee80211_configure_filter. > > or: > --- > diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c > index c981604..1ffe266 100644 > --- a/net/mac80211/cfg.c > +++ b/net/mac80211/cfg.c > @@ -68,9 +68,61 @@ static int ieee80211_change_iface(struct wiphy *wiphy, > params && params->use_4addr >= 0) > sdata->u.mgd.use_4addr = params->use_4addr; > > - if (sdata->vif.type == NL80211_IFTYPE_MONITOR && flags) > + if (sdata->vif.type == NL80211_IFTYPE_MONITOR && flags) { > + struct ieee80211_local *local = sdata->local; > + u32 changed_flags; > + u32 old_flags; > + u32 hw_reconf_flags = 0; > + > + old_flags = sdata->u.mntr_flags; > + changed_flags = old_flags ^ *flags; > + if (!(old_flags & MONITOR_FLAG_COOK_FRAMES)) > + ieee80211_adjust_monitor_flags(sdata, -1); > + > + if (changed_flags & MONITOR_FLAG_COOK_FRAMES) { > + if (*flags & MONITOR_FLAG_COOK_FRAMES) { > + local->cooked_mntrs++; > + local->monitors--; Yeah, that's kinda ugly. I'm fine with not allowing the cook flag to change, seems like a pretty special case anyway. Or, we can allow it to change, but only while the interface is down, right? 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