Re: [PATCH net-next] dev: advertise rx_flags changes
From: Stephen Hemminger <stephen@networkplumber.org>
Date: 2013-09-23 19:27:19
On Mon, 23 Sep 2013 16:25:34 +0200 Nicolas Dichtel [off-list ref] wrote:
quoted hunk ↗ jump to hunk
There is no netlink message/call to notifier chains when rx_flags are updated, let's advertise everybody. Signed-off-by: Nicolas Dichtel <redacted> --- net/core/dev.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)diff --git a/net/core/dev.c b/net/core/dev.c index 5c713f2239cc..6c91d3919279 100644 --- a/net/core/dev.c +++ b/net/core/dev.c@@ -4818,8 +4818,13 @@ static void dev_change_rx_flags(struct net_device *dev, int flags) { const struct net_device_ops *ops = dev->netdev_ops; - if ((dev->flags & IFF_UP) && ops->ndo_change_rx_flags) - ops->ndo_change_rx_flags(dev, flags); + if (dev->flags & IFF_UP) { + if (ops->ndo_change_rx_flags) + ops->ndo_change_rx_flags(dev, flags); + + call_netdevice_notifiers(NETDEV_CHANGE, dev); + rtmsg_ifinfo(RTM_NEWLINK, dev, flags); + } } static int __dev_set_promiscuity(struct net_device *dev, int inc)
This will cause duplicate notification if IFF_MULTICAST changes:
1. dev_change_flags
__dev_change_flags
dev_change_rx_flags
call_netdevice_notifiers...
2. dev_change_flags
__dev_notify_flags
call_netdevice_notifiers...