mlxsw: spectrum: Add an helper function to cleanup VLAN entries
VLAN entries on a port can be associated with either a bridge VLAN or a router port. Before the VLAN entry is destroyed these associations need to be cleaned up. Currently, this is always invoked from the function which destroys the VLAN entry, but next patch is going to skip the destruction of the default entry when a port in unlinked from a LAG. The above does not mean that the associations should not be cleaned up, so add a helper that will be invoked from both call sites. Signed-off-by: Ido Schimmel <idosch@mellanox.com> Reviewed-by: Petr Machata <petrm@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
346fca3b58
commit
16f6aceb72
@ -1154,6 +1154,15 @@ static void mlxsw_sp_port_vlan_flush(struct mlxsw_sp_port *mlxsw_sp_port,
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
mlxsw_sp_port_vlan_cleanup(struct mlxsw_sp_port_vlan *mlxsw_sp_port_vlan)
|
||||
{
|
||||
if (mlxsw_sp_port_vlan->bridge_port)
|
||||
mlxsw_sp_port_vlan_bridge_leave(mlxsw_sp_port_vlan);
|
||||
else if (mlxsw_sp_port_vlan->fid)
|
||||
mlxsw_sp_port_vlan_router_leave(mlxsw_sp_port_vlan);
|
||||
}
|
||||
|
||||
struct mlxsw_sp_port_vlan *
|
||||
mlxsw_sp_port_vlan_create(struct mlxsw_sp_port *mlxsw_sp_port, u16 vid)
|
||||
{
|
||||
@ -1191,11 +1200,7 @@ void mlxsw_sp_port_vlan_destroy(struct mlxsw_sp_port_vlan *mlxsw_sp_port_vlan)
|
||||
struct mlxsw_sp_port *mlxsw_sp_port = mlxsw_sp_port_vlan->mlxsw_sp_port;
|
||||
u16 vid = mlxsw_sp_port_vlan->vid;
|
||||
|
||||
if (mlxsw_sp_port_vlan->bridge_port)
|
||||
mlxsw_sp_port_vlan_bridge_leave(mlxsw_sp_port_vlan);
|
||||
else if (mlxsw_sp_port_vlan->fid)
|
||||
mlxsw_sp_port_vlan_router_leave(mlxsw_sp_port_vlan);
|
||||
|
||||
mlxsw_sp_port_vlan_cleanup(mlxsw_sp_port_vlan);
|
||||
list_del(&mlxsw_sp_port_vlan->list);
|
||||
kfree(mlxsw_sp_port_vlan);
|
||||
mlxsw_sp_port_vlan_set(mlxsw_sp_port, vid, vid, false, false);
|
||||
|
Loading…
Reference in New Issue
Block a user