Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp1154514yba; Wed, 24 Apr 2019 16:17:47 -0700 (PDT) X-Google-Smtp-Source: APXvYqyqboOvsTziAJ36OkaQz/M8N93ZyD5K+LjseMp2G9IyaSg2j3YxzXEY04uIwfEh0OGcn+FN X-Received: by 2002:aa7:9194:: with SMTP id x20mr5675757pfa.29.1556147867730; Wed, 24 Apr 2019 16:17:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556147867; cv=none; d=google.com; s=arc-20160816; b=XvpDYIip5zuuEFEut+LgBORsXy0qDVp1Zwcge9APuO6q8fvKzqLUJtmbr9SEPGmjWz UakwZjzwyMMZN/olhsrcbV6QCt2aaEKxrvlLr9qIy0wl6SKClUpoRI6QxqpjEoVcR/+d tGYrC/EqeQ2hiusM5+/PAngQpD7wmjyc7juWEyQ6D7WQ+3YxTGR1NMWSrEycRPxKnAxS ZiQgqKFz1LvyHx94n9Xsenb/qVmAl1IUJ04axez1CiwLi4DiSE1YBjO3OYu/eYpgEyWL SfOwnIsYaKXYa3eV+SecjA9iMphwBFULjq7lHdUyvnFFxbXkLj/12TtXMfmC3+jdocj8 4E3A== 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=Ose0j1dZX79Q0KyqgJS/3YMkGUuay++zVRdv3fcSsOs=; b=fMAAFi3RnJ1VythpIwFNhZUXoBlahHxrjca1a0+QMrR0g86e6d5mkkzRaqM+OLy/zD OPWROzGfUilNYgryBFLgWFtmrmEHg02jrTMrRH/WR3JbQWYaObwGBm2VRrkvrHBh3O3K 3gh/Yos+UC421Ixx3qX3tFwkfm1zlSVUxexVhCo8yQpCb06TVlIhN4BRBUJN6ELRNHYC PSlDFoGJtcPmdm5F/0TRc0ajqGHD5h4jeShL4OszZMhLkNqIYJeSj15umzF6OqekO2YB gKWG//dN5nMPPXJdpHJ6aKcd5VALj7UOLXo1XViARSy+ITOkNzUn9lXnyN0AoucUtMvh gJ1w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="C/7cxgmJ"; 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 c18si20084976pfi.198.2019.04.24.16.17.32; Wed, 24 Apr 2019 16:17:47 -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="C/7cxgmJ"; 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 S2389592AbfDXRZs (ORCPT + 99 others); Wed, 24 Apr 2019 13:25:48 -0400 Received: from mail.kernel.org ([198.145.29.99]:51750 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389384AbfDXRZr (ORCPT ); Wed, 24 Apr 2019 13:25:47 -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 B63C520835; Wed, 24 Apr 2019 17:25:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1556126746; bh=5WzlTRktrRaShqcaO4SfF+sSiVO/bHHiUUPKeTTP1Qs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=C/7cxgmJ0VAeYbZMfMXJOUpl8wVlKW+0WIrwSv76Een+MtlF/i8yNhc4EUgDz7I8s ANrp7zGpVpKniH22F96l6IGvt5Krb9X93qzdIuQFtYZtfocCxkeDCQvePT9YjSjlyV jAK5/GPE2zrIAk2UNyzA7bDIAg5PRmW1/pb9twa4= 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 4.9 07/44] team: set slave to promisc if team is already in promisc mode Date: Wed, 24 Apr 2019 19:09:45 +0200 Message-Id: <20190424170845.902376125@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190424170839.924291114@linuxfoundation.org> References: <20190424170839.924291114@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 @@ -1251,6 +1251,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); @@ -1267,6 +1284,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); @@ -1312,6 +1332,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);