From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ilias Apalodimas Subject: Re: [PATCH net-next v2 3/7] rocker: rocker_main: Ignore bridge VLAN events Date: Tue, 29 May 2018 13:25:43 +0300 Message-ID: <20180529102543.GA1883@apalos> References: <708f594ac6cef4a63a6f6a28759098c4d7922976.1527503302.git.petrm@mellanox.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: devel@driverdev.osuosl.org, f.fainelli@gmail.com, andrew@lunn.ch, nikolay@cumulusnetworks.com, netdev@vger.kernel.org, bridge@lists.linux-foundation.org, idosch@mellanox.com, jiri@mellanox.com, razvan.stefanescu@nxp.com, gregkh@linuxfoundation.org, vivien.didelot@savoirfairelinux.com, davem@davemloft.net To: Petr Machata Return-path: Content-Disposition: inline In-Reply-To: <708f594ac6cef4a63a6f6a28759098c4d7922976.1527503302.git.petrm@mellanox.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: driverdev-devel-bounces@linuxdriverproject.org Sender: "devel" List-Id: netdev.vger.kernel.org Hi Petr, On Mon, May 28, 2018 at 12:50:09PM +0200, Petr Machata wrote: > Ignore VLAN events where the orig_dev is the bridge device itself. > > Signed-off-by: Petr Machata > --- > drivers/net/ethernet/rocker/rocker_main.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/net/ethernet/rocker/rocker_main.c b/drivers/net/ethernet/rocker/rocker_main.c > index e73e4fe..aeafdb9 100644 > --- a/drivers/net/ethernet/rocker/rocker_main.c > +++ b/drivers/net/ethernet/rocker/rocker_main.c > @@ -1632,6 +1632,9 @@ rocker_world_port_obj_vlan_add(struct rocker_port *rocker_port, > { > struct rocker_world_ops *wops = rocker_port->rocker->wops; > > + if (netif_is_bridge_master(vlan->obj.orig_dev)) > + return -EOPNOTSUPP; > + What will happen to the "bridge vlan add dev br0 vid X pvid untagged self" when the lower level (the driver) returns -EOPNOTSUPP? Will it avoid adding a vlan on the bridge ? > if (!wops->port_obj_vlan_add) > return -EOPNOTSUPP; > > @@ -1647,6 +1650,9 @@ rocker_world_port_obj_vlan_del(struct rocker_port *rocker_port, > { > struct rocker_world_ops *wops = rocker_port->rocker->wops; > > + if (netif_is_bridge_master(vlan->obj.orig_dev)) > + return -EOPNOTSUPP; > + > if (!wops->port_obj_vlan_del) > return -EOPNOTSUPP; > return wops->port_obj_vlan_del(rocker_port, vlan); > -- > 2.4.11 >