Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp1986582imm; Sat, 12 May 2018 04:01:29 -0700 (PDT) X-Google-Smtp-Source: AB8JxZqdLQkCrt4nloqzFE+RhUsZP6oWCC3gvd1TjEk1rPJdftBSIvxqoTiN6Lw6+CDiBROiQuXB X-Received: by 2002:a63:a06a:: with SMTP id u42-v6mr2241801pgn.389.1526122889806; Sat, 12 May 2018 04:01:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526122889; cv=none; d=google.com; s=arc-20160816; b=vSANhOVbAlx3TMrx4aFvWw5I6ltCObGkORLYsgAzJB8Zqbh/2kkxoPWrP3q2xrElHw BN9Z18Zw7G30YCgg+NAZEia34foFYfy4FR4L3rM7GekVF82HBu9+qzVOMqQnyqPIoonn m+gkaB/9Rz/NS0ZX1fGbdCIaBNPh/I4db3XohkSu4BBzzDtkag3VouYFTecZiIVyDQaD 90jGarwOYdTwHTcZc9YwXvIYY63Zl8MR/YiJ044Xf3+IZYlE9jsDuyPIKOzbqbHw/HeR 1IJjkzgVnmQ9uAVrJdAUo8M9pzGDmmng/1I4KA5/I58BQ9lf6uCprUaJGEZNp0p/Doyg BClA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:subject:cc :to:from:arc-authentication-results; bh=MS9E8Y1dMC5mfXw2fxSpLp87q2UXWKxum3by6swqYew=; b=iJqLKaOBzhbrf+iD9EwwA0g6fhUy0wfaD2lfxp1jny9TGg3zONnQG60nMDTsQ43zSt e2WzyzgYaj4X6uq0P4dhkcPVncuRW573DNorLZA0fSmrHWUZnuE3BlU7VA/ln3ImxTLX vCcrNkakmt4SXkX3McyBTn9VMAvzZakoAyPMizizRN+uwAu3M2ZfAkK36pJGNBCy3F3+ 0qh1wPFW7Ycmju1TSAlfBJrBxMcjEXj3MSl5dsDmxGUxFrhZO5tcEKAvp/07tUguMhwh z4mBreJz3C1l5MFpdr72YtXbd/jmKnDZETCDulBRtUFRHGVozDxVZPN+uOhu1tlEnt5C uCUg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j129-v6si2626715pgc.623.2018.05.12.04.01.14; Sat, 12 May 2018 04:01:29 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751052AbeELLBE (ORCPT + 99 others); Sat, 12 May 2018 07:01:04 -0400 Received: from szxga07-in.huawei.com ([45.249.212.35]:43971 "EHLO huawei.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1750735AbeELLBD (ORCPT ); Sat, 12 May 2018 07:01:03 -0400 Received: from DGGEMS404-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id 0B4773452DDDE; Sat, 12 May 2018 19:00:58 +0800 (CST) Received: from localhost (10.177.68.80) by DGGEMS404-HUB.china.huawei.com (10.3.19.204) with Microsoft SMTP Server id 14.3.361.1; Sat, 12 May 2018 19:00:51 +0800 From: To: , , , , , , CC: , 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> X-Mailer: git-send-email 2.10.2.windows.1 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.177.68.80] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@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