From mboxrd@z Thu Jan 1 00:00:00 1970 From: Subject: [PATCH] ipvlan: flush arp table when mac address changed Date: Sat, 12 May 2018 19:00:37 +0800 Message-ID: <20180512110037.9116-1-liuqifa@huawei.com> Mime-Version: 1.0 Content-Type: text/plain Cc: , To: , , , , , , Return-path: Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org From: Keefe Liu When master device's mac has been changed, the commit <32c10bbfe914> "ipvlan: always use the current L2 addr of the master" makes the IPVlan devices's mac changed also, but it doesn't flush the IPVlan's arp table. Signed-off-by: Keefe Liu --- drivers/net/ipvlan/ipvlan_main.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/net/ipvlan/ipvlan_main.c b/drivers/net/ipvlan/ipvlan_main.c index 450eec2..a1edfe1 100644 --- a/drivers/net/ipvlan/ipvlan_main.c +++ b/drivers/net/ipvlan/ipvlan_main.c @@ -7,6 +7,8 @@ * */ +#include +#include #include "ipvlan.h" static unsigned int ipvlan_netid __read_mostly; @@ -792,8 +794,10 @@ static int ipvlan_device_event(struct notifier_block *unused, break; case NETDEV_CHANGEADDR: - list_for_each_entry(ipvlan, &port->ipvlans, pnode) + list_for_each_entry(ipvlan, &port->ipvlans, pnode) { ether_addr_copy(ipvlan->dev->dev_addr, dev->dev_addr); + neigh_changeaddr(&arp_tbl, ipvlan->dev); + } break; case NETDEV_PRE_TYPE_CHANGE: -- 1.8.3.1