On Thu, 2012-07-12 at 19:37 +0300, Eliad Peller wrote: > On Thu, Jul 12, 2012 at 7:31 PM, Johannes Berg > <johannes@xxxxxxxxxxxxxxxx> wrote: > > On Thu, 2012-07-12 at 19:26 +0300, Eliad Peller wrote: > > > >> >> why not always do it only on IFACE_UP? > >> > > >> > Yeah .. thought so too at first, but it doesn't work, say you have this > >> > situation: > >> > > >> > * up moni0 (monitor) > >> > * up wlan0 (managed) > >> > > >> > Then the set_monitor_enabled(false) should happen before wlan0 is > >> > brought up, otherwise mac80211/the driver will correctly reject wlan0 > >> > being brought up. > >> > > >> but you don't call set_monitor_enabled(false) on pre_up in your > >> patch... > > > > It does, this is what happens when wlan0 is brought up: > > > > >> if (monitors_only) { > > > > no, we'll go into else > > > i completely overlooked this if :) > > >> afaict, the only effect of pre_up is updating > >> rdev->num_running_ifaces/rdev->num_running_monitor_ifaces, which don't > >> seem to matter much... > > > > No :-) > > > thanks for the detailed walkthrough :D :-) However, I just realised that it's still all broken. We must not do any accounting in NETDEV_PRE_UP, because it might fail afterwards and we'd never get NETDEV_UP, but also don't get NETDEV_DOWN or anything else. It seems we can't fix it and will have to revert the monitor interface tracking changes in cfg80211/mac80211. 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