Re: [PATCH] wext: fix message delay/ordering
> > + if (state == NETDEV_UNREGISTER) > > + wireless_nlevent_flush(); > > > It could be argued that the state check isn't really necessary and > should be removed to avoid ordering issues with up/down vs. wext, but > this fixes the really strange issue where you get an RTM_NEWLINK > after > RTM_DELLINK (with the same ifidx), and I don't see how any software > would care much about the ordering otherwise. > Actually though, with the fix I still get: 5: wlan1:mtu 1500 qdisc mq state DOWN group default link/ether 02:00:00:00:01:00 brd ff:ff:ff:ff:ff:ff 5: wlan1: link/ether Deleted 5: wlan1: mtu 1500 qdisc noop state DOWN group default link/ether 02:00:00:00:01:00 brd ff:ff:ff:ff:ff:ff which is clearly odd (see the UP flag), so I'll change it. johannes -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] wext: fix message delay/ordering
On Wed, 2016-01-27 at 13:14 +0100, Johannes Berg wrote: > > +static int wext_netdev_notifier_call(struct notifier_block *nb, > + unsigned long state, void *ptr) > +{ > + /* > + * When a netdev is unregistered, flush all pending messages > + * to avoid them going out after the RTM_DELLINK, which can > + * happen due to the schedule_work(). > + */ > + if (state == NETDEV_UNREGISTER) > + wireless_nlevent_flush(); > It could be argued that the state check isn't really necessary and should be removed to avoid ordering issues with up/down vs. wext, but this fixes the really strange issue where you get an RTM_NEWLINK after RTM_DELLINK (with the same ifidx), and I don't see how any software would care much about the ordering otherwise. johannes -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] wext: fix message delay/ordering
On Wed, 2016-01-27 at 13:18 +0100, Johannes Berg wrote: > > > + if (state == NETDEV_UNREGISTER) > > > + wireless_nlevent_flush(); > > > > > It could be argued that the state check isn't really necessary and > > should be removed to avoid ordering issues with up/down vs. wext, > > but > > this fixes the really strange issue where you get an RTM_NEWLINK > > after > > RTM_DELLINK (with the same ifidx), and I don't see how any software > > would care much about the ordering otherwise. > > > > Actually though, with the fix I still get: > > 5: wlan1:mtu 1500 qdisc mq state DOWN group > default > link/ether 02:00:00:00:01:00 brd ff:ff:ff:ff:ff:ff > 5: wlan1: > link/ether > Deleted 5: wlan1: mtu 1500 qdisc noop state > DOWN group default > link/ether 02:00:00:00:01:00 brd ff:ff:ff:ff:ff:ff > > which is clearly odd (see the UP flag), so I'll change it. > Doesn't help, since the wext netdev notifier is registered earlier and thus runs earlier than the cfg80211 one that triggers the action ... I'll fix that differently then. johannes -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html