From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AD473C4360F for ; Thu, 4 Apr 2019 12:47:22 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7B150206C0 for ; Thu, 4 Apr 2019 12:47:22 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="twfwYmHo" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729865AbfDDMrV (ORCPT ); Thu, 4 Apr 2019 08:47:21 -0400 Received: from mail-pl1-f193.google.com ([209.85.214.193]:43319 "EHLO mail-pl1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727051AbfDDMrV (ORCPT ); Thu, 4 Apr 2019 08:47:21 -0400 Received: by mail-pl1-f193.google.com with SMTP id m10so1120856plt.10 for ; Thu, 04 Apr 2019 05:47:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=ne0HSwk/x4Bm5yMajEvrWN/8weePMsnboXtJrf0FL7s=; b=twfwYmHoW/BM8C3+mp1uQklaAbPX5VU+XeAHQQYTyVQDpFBodoq5K3gGoY/cFad81h RXP8w/gX175wdYZYXvfMHM4yeUghWaOVgZebpAIyKDvZizfeZUeb77+TZAHToEEhS5PO UAvEKDyyGXBIPDnIECy1XBihobNrKux3VOpnjrIVpojqUoIOvShhX6yqAFikf67LWwtL gbd3N8XaEBwkpPMKF3DQxlkrfohArt3st9LA9we/u9MbMmFijM0ffp+Ifu9VxP+Zdxv3 oWpR4d95pVS3HPf1UTJL7TrCFwtTVVhzqV60wvAJYEQlVjPvENvB3NmXxfJaW2OsVrCw eWzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=ne0HSwk/x4Bm5yMajEvrWN/8weePMsnboXtJrf0FL7s=; b=kKKo7ppL03fx1W44ZqddaWcPO2wpFt8mQlu7mO4fQKqnZFmaLFnCn5fQI3zlCUAsE5 J79DwuiSGHoIk+5SfL28KOqgtbroAJxmvX/GxTQGXucaVgvexNuZFu1h4+hdHjoNQSNz LIxYg6dGRoStHO0M2yTg/rRY0VSY8sqxHgPWJksSx1gZdnOmkiHNbm85y1ruIH7AJK4f y1rkyhiNUNSTgfzMpKNLt0dWr0AkZqi84lMm5RPnpXiJXHIRvDEqFdhKqvEfxn6YeAwY L3x6zAIaoxAxfjtMJpykd1mSAvAmCJcUD/VLbO0KdUZub0A6KfK7Fb5ut2hFgcnnBVbU z1yw== X-Gm-Message-State: APjAAAUxgb7lmZBZx9kfIpnc5mHNC8BsPwUyDjoFS4YGh6WD/5ORUz6i FeT2UXrkqzgm6cli96a9pNJHkovaoFg= X-Google-Smtp-Source: APXvYqwcbYBYpDPNTyzjFAGJV34qaXblTIRfPLlAT9MzpxsKuKcGPtKlGYJ8iBljMA7Gcf1EhIHV6A== X-Received: by 2002:a17:902:aa87:: with SMTP id d7mr6267596plr.146.1554382040321; Thu, 04 Apr 2019 05:47:20 -0700 (PDT) Received: from dhcp-12-139.nay.redhat.com ([209.132.188.80]) by smtp.gmail.com with ESMTPSA id f3sm33109559pfn.100.2019.04.04.05.47.17 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 04 Apr 2019 05:47:19 -0700 (PDT) From: Hangbin Liu To: netdev@vger.kernel.org Cc: David Miller , Stefano Brivio , Jiri Pirko , Marcelo Ricardo Leitner , Hangbin Liu Subject: [PATCH net] team: set slave to promisc if team is already in promisc mode Date: Thu, 4 Apr 2019 20:47:02 +0800 Message-Id: <20190404124702.17041-1-liuhangbin@gmail.com> X-Mailer: git-send-email 2.19.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org 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. Fixes: 3d249d4ca7d0 ("net: introduce ethernet teaming device") Signed-off-by: Hangbin Liu --- drivers/net/team/team.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c index 6ed96fdfd96d..bbaa198d0960 100644 --- a/drivers/net/team/team.c +++ b/drivers/net/team/team.c @@ -1246,6 +1246,23 @@ static int team_port_add(struct team *team, struct net_device *port_dev, goto err_option_port_add; } + /* set promiscuity level to new slave */ + if (team->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 (team->dev->flags & IFF_ALLMULTI) { + err = dev_set_allmulti(port_dev, 1); + if (err) { + if (team->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); @@ -1262,6 +1279,9 @@ static int team_port_add(struct team *team, struct net_device *port_dev, return 0; +err_set_slave_promisc: + __team_option_inst_del_port(team, port); + err_option_port_add: team_upper_dev_unlink(team, port); -- 2.19.2