In commit 602b74eda813 ("mlxsw: spectrum_switchdev: Do not leak RIFs
when removing bridge") I handled the case where RIFs created for VLAN
devices were not properly cleaned up when their real device (a bridge)
was removed.

However, I forgot to handle the case of the VLAN device itself being
removed. Do so now when the VLAN device is being unlinked from its real
device.

Fixes: 99f44bb3527b ("mlxsw: spectrum: Enable L3 interfaces on top of bridge 
devices")
Signed-off-by: Ido Schimmel <ido...@mellanox.com>
Reviewed-by: Jiri Pirko <j...@mellanox.com>
Reported-by: Artem Shvorin <a...@qrator.net>
Tested-by: Artem Shvorin <a...@qrator.net>
---
 drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c 
b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
index b492152c8881..30bb2c533cec 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
@@ -4845,6 +4845,8 @@ static int mlxsw_sp_netdevice_bridge_event(struct 
net_device *br_dev,
                upper_dev = info->upper_dev;
                if (info->linking)
                        break;
+               if (is_vlan_dev(upper_dev))
+                       mlxsw_sp_rif_destroy_by_dev(mlxsw_sp, upper_dev);
                if (netif_is_macvlan(upper_dev))
                        mlxsw_sp_rif_macvlan_del(mlxsw_sp, upper_dev);
                break;
-- 
2.17.1

Reply via email to