mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 19:30:30 +09:00
mlxsw: spectrum: Handle VLAN device unlinking
[ Upstream commite149113a74] In commit993107fea5("mlxsw: spectrum_switchdev: Fix VLAN device deletion via ioctl") I fixed a bug caused by the fact that the driver views differently the deletion of a VLAN device when it is deleted via an ioctl and netlink. Instead of relying on a specific order of events (device being unregistered vs. VLAN filter being updated), simply make sure that the driver performs the necessary cleanup when the VLAN device is unlinked, which always happens before the other two events. Signed-off-by: Ido Schimmel <idosch@mellanox.com> Reviewed-by: Petr Machata <petrm@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
a8a296abee
commit
cd54dc4cd3
@@ -4681,6 +4681,16 @@ static int mlxsw_sp_netdevice_port_upper_event(struct net_device *lower_dev,
|
||||
} else if (netif_is_macvlan(upper_dev)) {
|
||||
if (!info->linking)
|
||||
mlxsw_sp_rif_macvlan_del(mlxsw_sp, upper_dev);
|
||||
} else if (is_vlan_dev(upper_dev)) {
|
||||
struct net_device *br_dev;
|
||||
|
||||
if (!netif_is_bridge_port(upper_dev))
|
||||
break;
|
||||
if (info->linking)
|
||||
break;
|
||||
br_dev = netdev_master_upper_dev_get(upper_dev);
|
||||
mlxsw_sp_port_bridge_leave(mlxsw_sp_port, upper_dev,
|
||||
br_dev);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user