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=-7.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS 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 DEA4BC282D4 for ; Wed, 30 Jan 2019 07:37:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 9D9202087F for ; Wed, 30 Jan 2019 07:37:46 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="B6ciYKVT" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729012AbfA3Hhp (ORCPT ); Wed, 30 Jan 2019 02:37:45 -0500 Received: from mail-eopbgr40054.outbound.protection.outlook.com ([40.107.4.54]:42256 "EHLO EUR03-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725819AbfA3Hhp (ORCPT ); Wed, 30 Jan 2019 02:37:45 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cN+V91lULR98OarJrTUKp4qs3dGp23dx5ETCuG0aYc8=; b=B6ciYKVTbLI3EVvBUqdReJ90FSKnpjfbhCQbYqfz/Jw5n5AsP4dvwYuyh1cxSYok9qjCV5jST2ylbWCgF+JRwpVY8kHcHSmCZZiWr5CkllVXTMxE2xj2vvfu7P3a8NubKc3L6oPBRlCluB+UfWOj+My2BgVIqS8hxQh8hQl2H70= Received: from DB7PR05MB4940.eurprd05.prod.outlook.com (20.176.235.152) by DB7PR05MB5788.eurprd05.prod.outlook.com (20.178.106.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1580.17; Wed, 30 Jan 2019 07:36:59 +0000 Received: from DB7PR05MB4940.eurprd05.prod.outlook.com ([fe80::6161:97fd:d315:7b07]) by DB7PR05MB4940.eurprd05.prod.outlook.com ([fe80::6161:97fd:d315:7b07%6]) with mapi id 15.20.1558.023; Wed, 30 Jan 2019 07:36:59 +0000 From: Ido Schimmel To: Florian Fainelli CC: "netdev@vger.kernel.org" , "andrew@lunn.ch" , "vivien.didelot@gmail.com" , "davem@davemloft.net" , Jiri Pirko , "ilias.apalodimas@linaro.org" , "ivan.khoronzhuk@linaro.org" , "roopa@cumulusnetworks.com" , "nikolay@cumulusnetworks.com" Subject: Re: [PATCH net-next v2 01/12] net: bridge: multicast: Propagate br_mc_disabled_update() return Thread-Topic: [PATCH net-next v2 01/12] net: bridge: multicast: Propagate br_mc_disabled_update() return Thread-Index: AQHUuDbTGZTTwT43CkGhvsffrrDKnqXHbLkA Date: Wed, 30 Jan 2019 07:36:59 +0000 Message-ID: <20190130073656.GA22227@splinter> References: <20190130005548.2212-1-f.fainelli@gmail.com> <20190130005548.2212-2-f.fainelli@gmail.com> In-Reply-To: <20190130005548.2212-2-f.fainelli@gmail.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM5PR0201CA0022.eurprd02.prod.outlook.com (2603:10a6:203:3d::32) To DB7PR05MB4940.eurprd05.prod.outlook.com (2603:10a6:10:1e::24) authentication-results: spf=none (sender IP is ) smtp.mailfrom=idosch@mellanox.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [193.47.165.251] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;DB7PR05MB5788;6:BaBjIIZPwdTIbFN9ncaj4fDkIp8VRlgS6PW/+gPoSKDno23WY0dp2a+yy3hqJax8+Jn8gWe7WNvstvRl3JcKAUZUCxIFyt4nGyYi934hr1tupfpiiRVUGuUQ6JodGADimbBDlQP0ygEtRg2FbbAZOxODxjeT55UJF576YLTaK+xGRX+92xo5Wslo0S+7cGsuT03AsjCfJuL8Wu7ENbpIuXUsCXMULqIq2+clquPciSFtlRrR5iJ0XODL9912v7mBepQd46iQoyOfJuUCug/XP1HHz6MktZZW1+Fsae7FBHuJtawkzWIad3KvosMd+IA2+kXFmhVQ0IlKjfbEwWU8VbyT1nVM87wCkPT/ATfdV2NubJT5cax42OrtM8ZQFZMFqeLuztlcrXVI6UCwDkoZ1DAnMwQdrwugxV1vKUbBHhBLZEEApS/MzXeVbddwhzccKiCANvS3pGXLKa6p+MYEEw==;5:isgRfMLffk7XrDKSpPc1bx+5bIorc98T7WewnfHAzNkWe6976OmsUgq+TxPse1yeuK+ZbS9VOl9H688tayaDn3NKBy7eePPpCexWEAt8wja1tnoYGlr7DTTNQw2kcDmXFqF7OiYpqxhrAToMsH7fSaK8pP8cm6CvXMFwvK0vofAbjWCDlkGEqDs3ZBipkOQfDzcUlrGQ65JPrF/5Wgl3qQ==;7:Jcq/eqeWnj4Ee4K1VZRXkvVFv4G/WHSYn1AgeQjfhGigWMUenh7lhurvNAqRXFRqT0sY0zZqfHtHNv3E9bdg+zzMqxK9H85sXaarvyaktAXaQVGIM9wW4Lm6Ttc8z2pmSfhSvqp7tPSpukZamBv2xg== x-ms-office365-filtering-correlation-id: ec716559-7a46-41e2-62d3-08d68685b793 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600110)(711020)(4605077)(4618075)(2017052603328)(7153060)(7193020);SRVR:DB7PR05MB5788; x-ms-traffictypediagnostic: DB7PR05MB5788: x-microsoft-antispam-prvs: x-forefront-prvs: 0933E9FD8D x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(7916004)(346002)(376002)(39860400002)(136003)(366004)(396003)(189003)(199004)(6916009)(256004)(71190400001)(14444005)(6436002)(76176011)(25786009)(2906002)(8936002)(71200400001)(8676002)(81156014)(81166006)(66066001)(9686003)(53936002)(97736004)(99286004)(33896004)(6512007)(86362001)(11346002)(476003)(446003)(478600001)(68736007)(486006)(33716001)(52116002)(66574012)(316002)(6506007)(386003)(105586002)(6116002)(14454004)(1076003)(106356001)(3846002)(102836004)(54906003)(4326008)(7736002)(33656002)(6486002)(6246003)(186003)(39060400002)(229853002)(305945005)(26005)(309714004);DIR:OUT;SFP:1101;SCL:1;SRVR:DB7PR05MB5788;H:DB7PR05MB4940.eurprd05.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: xLXke1OAY/fbbk2qp3QtOfcPfyOcsD6bMzFmIZGq05Y8I3eHpmptD51zxHXnh99Qzlh9fkVuPJvDddOetYsVABmR5R4npIB9FagkOnIDGeujuTrEt1kOtMgf/zfN9dNPyLWdjpigUV6ekcrAUcPajXJ1nvdtr46L4nBXikigz87NP89rPFna27PH9Dt6jw7izXhOcmd4MTUt1ChX9r7WOGc599ms/rbxqajj0Jm7yIs3r0OfpqrwVBZBjuicOwxKun9ohtTfPzngVZAIg7BN86N++eo5cRx/tJc4GNaN1zJWsPY7L5BO4KAe5Ua2riiOhrqb8bI+zHyTzMuLJzCvKkVV8wtctPAeVQkz1f/5YhG1KJGyjlRDBxfRkrYEeeWSsLVDwHlDKiXhMzbUWg3iw9W1ljEEoGT/gFjNFwBT9CI= Content-Type: text/plain; charset="us-ascii" Content-ID: <03D18D8E85936042B458E4059D97C7AF@eurprd05.prod.outlook.com> Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: ec716559-7a46-41e2-62d3-08d68685b793 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Jan 2019 07:36:58.5934 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR05MB5788 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On Tue, Jan 29, 2019 at 04:55:37PM -0800, Florian Fainelli wrote: > Some Ethernet switches might not be able to support disabling multicast > flooding globally when e.g: several bridges span the same physical > device, propagate the return value of br_mc_disabled_update() such that > this propagates correctly to user-space. >=20 > Signed-off-by: Florian Fainelli > --- > net/bridge/br_multicast.c | 23 ++++++++++++++++------- > 1 file changed, 16 insertions(+), 7 deletions(-) >=20 > diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c > index 3aeff0895669..aff5e003d34f 100644 > --- a/net/bridge/br_multicast.c > +++ b/net/bridge/br_multicast.c > @@ -813,20 +813,22 @@ static void br_ip6_multicast_port_query_expired(str= uct timer_list *t) > } > #endif > =20 > -static void br_mc_disabled_update(struct net_device *dev, bool value) > +static int br_mc_disabled_update(struct net_device *dev, bool value) > { > struct switchdev_attr attr =3D { > .orig_dev =3D dev, > .id =3D SWITCHDEV_ATTR_ID_BRIDGE_MC_DISABLED, > - .flags =3D SWITCHDEV_F_DEFER, > + .flags =3D SWITCHDEV_F_DEFER | SWITCHDEV_F_SKIP_EOPNOTSUPP, Actually, since the operation is deferred I don't think the return value from the driver is ever checked. Can you test it? I think it would be good to convert the attributes to use the switchdev notifier like commit d17d9f5e5143 ("switchdev: Replace port obj add/del SDO with a notification") did for objects. Then you can have your listener veto the operation in the same context it is happening. > .u.mc_disabled =3D !value, > }; > =20 > - switchdev_port_attr_set(dev, &attr); > + return switchdev_port_attr_set(dev, &attr); > } > =20 > int br_multicast_add_port(struct net_bridge_port *port) > { > + int ret; > + > port->multicast_router =3D MDB_RTR_TYPE_TEMP_QUERY; > =20 > timer_setup(&port->multicast_router_timer, > @@ -837,8 +839,11 @@ int br_multicast_add_port(struct net_bridge_port *po= rt) > timer_setup(&port->ip6_own_query.timer, > br_ip6_multicast_port_query_expired, 0); > #endif > - br_mc_disabled_update(port->dev, > - br_opt_get(port->br, BROPT_MULTICAST_ENABLED)); > + ret =3D br_mc_disabled_update(port->dev, > + br_opt_get(port->br, > + BROPT_MULTICAST_ENABLED)); > + if (ret) > + return ret; > =20 > port->mcast_stats =3D netdev_alloc_pcpu_stats(struct bridge_mcast_stats= ); > if (!port->mcast_stats) > @@ -1937,12 +1942,16 @@ static void br_multicast_start_querier(struct net= _bridge *br, > int br_multicast_toggle(struct net_bridge *br, unsigned long val) > { > struct net_bridge_port *port; > + int err =3D 0; > =20 > spin_lock_bh(&br->multicast_lock); > if (!!br_opt_get(br, BROPT_MULTICAST_ENABLED) =3D=3D !!val) > goto unlock; > =20 > - br_mc_disabled_update(br->dev, val); > + err =3D br_mc_disabled_update(br->dev, val); > + if (err) > + goto unlock; > + > br_opt_toggle(br, BROPT_MULTICAST_ENABLED, !!val); > if (!br_opt_get(br, BROPT_MULTICAST_ENABLED)) > goto unlock; > @@ -1957,7 +1966,7 @@ int br_multicast_toggle(struct net_bridge *br, unsi= gned long val) > unlock: > spin_unlock_bh(&br->multicast_lock); > =20 > - return 0; > + return err; > } > =20 > bool br_multicast_enabled(const struct net_device *dev) > --=20 > 2.17.1 >=20