Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp1374443yba; Wed, 24 Apr 2019 21:23:43 -0700 (PDT) X-Google-Smtp-Source: APXvYqy0zIF2CmOW90gU4fvHdm8rU5aoqc6gnlnKVTmDJdU6PT0vGcg3XyQmaj7xtWPkkSuNKQQp X-Received: by 2002:a17:902:ba8c:: with SMTP id k12mr18217258pls.213.1556166223620; Wed, 24 Apr 2019 21:23:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556166223; cv=none; d=google.com; s=arc-20160816; b=gRw9kWPlq/XyOl0I9cinCPAnJ3/+tI6WS9H3efW0CvdMOgZVVDRCKXt5bveUf5BgWi lahRQOH5bEGfjZ6lEymFt/oNbagjOdSDkZzEDbloG5hwwfBaI7NeJsaRd30pfXDmOBNz tahYFK8AwyGjOL0wBi0j1Cltjn/600kv2smRyfkrKh5fLzSyUYSIaAz4vSmaclRkrgJ6 jRpai1TUcs5wNB2/cC3K5BAkL6QCNFmU3XC2/IkMdSrqCcRrs2WWTuTU2fn5XKJ/wHje o8+pTSQeuH7Ckme4idobq/2MSmdpWFnwL1fXG9ymnHxUma80gQ28PDXT7mKfBrmv7zVY qvJg== 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=L6QxeDUkm+nPs9NyYghkXq9h4IBqJD9AxG3vggcEcOA=; b=FW0Uc4scfjHR7SZFXQOkAo1rp9ceMD5nxiGr05pyWAnYBkeKdpYH9X5Bzh+UypjoGO KfPbF4vi9BqB7Cf8pb4QVJacqbhygST6Q1VhTgyg0HpFtg3EMMglQBKRHKTa0xmcQ2yE eiFf1kfh3O379P78VOxwYuWEKTQj+aEJNEX9oDKwUVHMkPvfLatJ6dL09SY7UvzJ3q7N 99qnyegEWqSOBW6wWH9pILhDUyi1AAre3vxPBW6MZZdZIT341EFpj6FNdVUZS7mjJJ9K lIEFhomEiTG9Jgsr3pyB/Hfgu2MxWzrcX+EP2B+oMHHHcVRvFa733/OnekldZL77y3Rb unig== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=1Krp739M; 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 j34si19619311pgb.64.2019.04.24.21.22.54; Wed, 24 Apr 2019 21:23:43 -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=1Krp739M; 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 S2391612AbfDXRsZ (ORCPT + 99 others); Wed, 24 Apr 2019 13:48:25 -0400 Received: from mail.kernel.org ([198.145.29.99]:57674 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2403775AbfDXRbO (ORCPT ); Wed, 24 Apr 2019 13:31:14 -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 B7F6320811; Wed, 24 Apr 2019 17:31:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1556127073; bh=lM2I0fF0UTnnQiUp3n0aAd2BPMCU9MxajSLXptVMUl4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=1Krp739MLxRpj21ZSPNVu3A3TnWVfM8cXMDrkW57Vs3NsWJqoC1PFealsgJh+tJyb /hYcaQ1Jx4b9ac5decjPw/vpq0cOiduJuCgvfhtGhl5ZwaBDoizULK4zFBpVR0f1tL iLZzsFM0DaIrduyS+MZxyG1GnwjubulT0bnVB1BY= 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.19 09/96] team: set slave to promisc if team is already in promisc mode Date: Wed, 24 Apr 2019 19:09:14 +0200 Message-Id: <20190424170920.453276983@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190424170919.829037226@linuxfoundation.org> References: <20190424170919.829037226@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 @@ -1250,6 +1250,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); @@ -1266,6 +1283,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); @@ -1311,6 +1331,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);