mlxsw: spectrum: Set bridge status in appropriate functions

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>
This commit is contained in:
Ido Schimmel 2016-01-04 10:42:25 +01:00 committed by David S. Miller
parent 78124078c4
commit 5a8f45258e
1 changed files with 5 additions and 10 deletions

View File

@ -1989,8 +1989,8 @@ static int mlxsw_sp_port_bridge_join(struct mlxsw_sp_port *mlxsw_sp_port)
* own VLANs. * own VLANs.
*/ */
err = mlxsw_sp_port_kill_vid(dev, 0, 1); err = mlxsw_sp_port_kill_vid(dev, 0, 1);
if (err) if (!err)
netdev_err(dev, "Failed to remove VID 1\n"); mlxsw_sp_port->bridged = 1;
return err; 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) static int mlxsw_sp_port_bridge_leave(struct mlxsw_sp_port *mlxsw_sp_port)
{ {
struct net_device *dev = mlxsw_sp_port->dev; 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 /* Add implicit VLAN interface in the device, so that untagged
* packets will be classified to the default vFID. * packets will be classified to the default vFID.
*/ */
err = mlxsw_sp_port_add_vid(dev, 0, 1); return mlxsw_sp_port_add_vid(dev, 0, 1);
if (err)
netdev_err(dev, "Failed to add VID 1\n");
return err;
} }
static bool mlxsw_sp_master_bridge_check(struct mlxsw_sp *mlxsw_sp, 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; return NOTIFY_BAD;
} }
mlxsw_sp_master_bridge_inc(mlxsw_sp, upper_dev); mlxsw_sp_master_bridge_inc(mlxsw_sp, upper_dev);
mlxsw_sp_port->bridged = 1;
} else { } else {
err = mlxsw_sp_port_bridge_leave(mlxsw_sp_port); err = mlxsw_sp_port_bridge_leave(mlxsw_sp_port);
mlxsw_sp_port->bridged = 0;
mlxsw_sp_master_bridge_dec(mlxsw_sp, upper_dev); mlxsw_sp_master_bridge_dec(mlxsw_sp, upper_dev);
if (err) { if (err) {
netdev_err(dev, "Failed to leave bridge\n"); netdev_err(dev, "Failed to leave bridge\n");