Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp1169982yba; Wed, 24 Apr 2019 16:39:06 -0700 (PDT) X-Google-Smtp-Source: APXvYqyFMxJjCAO3E48IROx2coXjbOii8qdDub23Z5+rVYv8qT4gtZCB+8Anu8elCl6a3cOob4Mr X-Received: by 2002:a63:4c:: with SMTP id 73mr33472623pga.210.1556149145964; Wed, 24 Apr 2019 16:39:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556149145; cv=none; d=google.com; s=arc-20160816; b=aLeKfbsn/ko2hkvNKVo10sE6iE/ijqjP0C99WVZEJsam7yYb6wEC2ZBpj9NR+8PlHA g9WmHAgiHMMhDBihueTSw/bThp+Aw+yIVSUtHUi3snv0FsyXdA7P4ic293AxeECqeY87 hd2+QmsoyQEB3+lbGHlcQBFD3N+iRiKTRDCCDhutA2D5fW3IYJU3/2l7pRSWwGrRWhKq Gjrcx/z9JQRskQtANuGkavNU+DR+k0Q4nsu2adSW8p8+Ok85gKoyRY6vKu+mTas3qzCh n0sPo6M9gSkaKpXCNP/11/IP9FHuKmj8AekTnK4gLGyrdeOywoXOZzf18isSU3PFXqjR PlYw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=6DR8Nvb/gOSVUX1labGCDMBCvYFLw60sOzaW4l3MdcQ=; b=phTHz5NlfnWwZLTzXyCfw420vfU5wqo9m9tCx2BoOfQsi52uY2jY+LhXKjEP3Ly3aD fKt2qKGA73yd+WGuv3gwbTuXXh8vOUKD8NXt927ycyzENhRqa2fKg6iykp+n+6Q0EA4b mG6nlyhs9lokTxfmwH1fkJlmDlf6aGa/oIieQOkrbuLbwV+HsV0XmRwkD/l/Pm3+VpFu KVviHUucXWtkYqf1De23fRaW06TP1k6vO5gyDAk0jT58xfOLvIiqArxGq9eqvaX5MYcX 4eDnQ96On7edzn1LqbUhKz1oSSVacw2jz/L/Fi7KA3Dk0JN1sIqrIQ4wy9fABT6xToNP 9H4g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="y/590stu"; 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 u4si4688215pgk.56.2019.04.24.16.38.50; Wed, 24 Apr 2019 16:39:05 -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; dkim=pass header.i=@kernel.org header.s=default header.b="y/590stu"; 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 S2391540AbfDXRdl (ORCPT + 99 others); Wed, 24 Apr 2019 13:33:41 -0400 Received: from mail.kernel.org ([198.145.29.99]:60628 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390909AbfDXRdh (ORCPT ); Wed, 24 Apr 2019 13:33:37 -0400 Received: from localhost (62-193-50-229.as16211.net [62.193.50.229]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 36A662077C; Wed, 24 Apr 2019 17:33:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1556127216; bh=17UlZXxf8UUS6yaEhvezelVge69t+0V+9R1NjKVqIKs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=y/590sturmXuWgz3IHf6bbBEtvLiQvP5VbwWuUA7T1fEg5aRT9D7expb6gzTWPs13 Mtpl4AXBXY86JfellOPu4uZ9DHs88Sc5Y05Tjk6iQVDdW0eGlds37whjBjKjk9d9ey f1oRqRpipzBar/O+saVVnRp8XJzMKagRyTkcg/Z8= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Hangbin Liu , "David S. Miller" Subject: [PATCH 5.0 010/115] team: set slave to promisc if team is already in promisc mode Date: Wed, 24 Apr 2019 19:09:06 +0200 Message-Id: <20190424170925.576011522@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190424170924.797924502@linuxfoundation.org> References: <20190424170924.797924502@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Hangbin Liu [ Upstream commit 43c2adb9df7ddd6560fd3546d925b42cef92daa0 ] After adding a team interface to bridge, the team interface will enter promisc mode. Then if we add a new slave to team0, the slave will keep promisc off. Fix it by setting slave to promisc on if team master is already in promisc mode, also do the same for allmulti. v2: add promisc and allmulti checking when delete ports Fixes: 3d249d4ca7d0 ("net: introduce ethernet teaming device") Signed-off-by: Hangbin Liu Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- drivers/net/team/team.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) --- a/drivers/net/team/team.c +++ b/drivers/net/team/team.c @@ -1247,6 +1247,23 @@ static int team_port_add(struct team *te goto err_option_port_add; } + /* set promiscuity level to new slave */ + if (dev->flags & IFF_PROMISC) { + err = dev_set_promiscuity(port_dev, 1); + if (err) + goto err_set_slave_promisc; + } + + /* set allmulti level to new slave */ + if (dev->flags & IFF_ALLMULTI) { + err = dev_set_allmulti(port_dev, 1); + if (err) { + if (dev->flags & IFF_PROMISC) + dev_set_promiscuity(port_dev, -1); + goto err_set_slave_promisc; + } + } + netif_addr_lock_bh(dev); dev_uc_sync_multiple(port_dev, dev); dev_mc_sync_multiple(port_dev, dev); @@ -1263,6 +1280,9 @@ static int team_port_add(struct team *te return 0; +err_set_slave_promisc: + __team_option_inst_del_port(team, port); + err_option_port_add: team_upper_dev_unlink(team, port); @@ -1308,6 +1328,12 @@ static int team_port_del(struct team *te team_port_disable(team, port); list_del_rcu(&port->list); + + if (dev->flags & IFF_PROMISC) + dev_set_promiscuity(port_dev, -1); + if (dev->flags & IFF_ALLMULTI) + dev_set_allmulti(port_dev, -1); + team_upper_dev_unlink(team, port); netdev_rx_handler_unregister(port_dev); team_port_disable_netpoll(port);