[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1369728655-26649-4-git-send-email-jiri@resnulli.us>
Date: Tue, 28 May 2013 10:10:55 +0200
From: Jiri Pirko <jiri@...nulli.us>
To: netdev@...r.kernel.org
Cc: davem@...emloft.net, eric.dumazet@...il.com, timo.teras@....fi,
kuznet@....inr.ac.ru, jmorris@...ei.org, yoshfuji@...ux-ipv6.org,
kaber@...sh.net, bhutchings@...arflare.com
Subject: [patch net-next 3/3] arp: flush arp cache on IFF_NOARP change
From: Timo Teräs <timo.teras@....fi>
IFF_NOARP affects what kind of neighbor entries are created
(nud NOARP or nud INCOMPLETE). If the flag changes, flush the arp
cache to refresh all entries.
Signed-off-by: Timo Teräs <timo.teras@....fi>
Signed-off-by: Jiri Pirko <jiri@...nulli.us>
---
net/ipv4/arp.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/net/ipv4/arp.c b/net/ipv4/arp.c
index b455213..8c8eb40 100644
--- a/net/ipv4/arp.c
+++ b/net/ipv4/arp.c
@@ -1235,12 +1235,18 @@ static int arp_netdev_event(struct notifier_block *this, unsigned long event,
void *ptr)
{
struct net_device *dev = get_netdevice_notifier_info_dev(ptr);
+ struct netdevice_notifier_change_info *change_info;
switch (event) {
case NETDEV_CHANGEADDR:
neigh_changeaddr(&arp_tbl, dev);
rt_cache_flush(dev_net(dev));
break;
+ case NETDEV_CHANGE:
+ change_info = ptr;
+ if (change_info->flags_changed & IFF_NOARP)
+ neigh_changeaddr(&arp_tbl, dev);
+ break;
default:
break;
}
--
1.7.11.7
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists