mlxsw: spectrum: Set bridge status in appropriate functions
authorIdo Schimmel <idosch@mellanox.com>
Mon, 4 Jan 2016 09:42:25 +0000 (10:42 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 5 Jan 2016 03:07:58 +0000 (22:07 -0500)
Set the bridge status of physical ports in the appropriate functions, to
be consistent with LAG join/leave and vPorts joining/leaving bridge.

Also, remove the error messages in these two functions, as we already
emit errors in both the single functions they call.

Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/spectrum.c

index eb719f3..ed2eb7b 100644 (file)
@@ -1989,8 +1989,8 @@ static int mlxsw_sp_port_bridge_join(struct mlxsw_sp_port *mlxsw_sp_port)
         * own VLANs.
         */
        err = mlxsw_sp_port_kill_vid(dev, 0, 1);
-       if (err)
-               netdev_err(dev, "Failed to remove VID 1\n");
+       if (!err)
+               mlxsw_sp_port->bridged = 1;
 
        return err;
 }
@@ -1998,16 +1998,13 @@ static int mlxsw_sp_port_bridge_join(struct mlxsw_sp_port *mlxsw_sp_port)
 static int mlxsw_sp_port_bridge_leave(struct mlxsw_sp_port *mlxsw_sp_port)
 {
        struct net_device *dev = mlxsw_sp_port->dev;
-       int err;
+
+       mlxsw_sp_port->bridged = 0;
 
        /* Add implicit VLAN interface in the device, so that untagged
         * packets will be classified to the default vFID.
         */
-       err = mlxsw_sp_port_add_vid(dev, 0, 1);
-       if (err)
-               netdev_err(dev, "Failed to add VID 1\n");
-
-       return err;
+       return mlxsw_sp_port_add_vid(dev, 0, 1);
 }
 
 static bool mlxsw_sp_master_bridge_check(struct mlxsw_sp *mlxsw_sp,
@@ -2362,10 +2359,8 @@ static int mlxsw_sp_netdevice_port_upper_event(struct net_device *dev,
                                        return NOTIFY_BAD;
                                }
                                mlxsw_sp_master_bridge_inc(mlxsw_sp, upper_dev);
-                               mlxsw_sp_port->bridged = 1;
                        } else {
                                err = mlxsw_sp_port_bridge_leave(mlxsw_sp_port);
-                               mlxsw_sp_port->bridged = 0;
                                mlxsw_sp_master_bridge_dec(mlxsw_sp, upper_dev);
                                if (err) {
                                        netdev_err(dev, "Failed to leave bridge\n");