From: Jiri Pirko <j...@mellanox.com>

The mlxsw_sp instance is not interested in events happening in other
network namespaces. So use "_net" variants for netdevice notifier
registration/unregistration and get only events which are happening in
the net the instance is in.

Signed-off-by: Jiri Pirko <j...@mellanox.com>
---
 drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c 
b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
index dcf9562bce8a..a54a0dc82ff2 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
@@ -4864,7 +4864,8 @@ static int mlxsw_sp_init(struct mlxsw_core *mlxsw_core,
         * respin.
         */
        mlxsw_sp->netdevice_nb.notifier_call = mlxsw_sp_netdevice_event;
-       err = register_netdevice_notifier(&mlxsw_sp->netdevice_nb);
+       err = register_netdevice_notifier_net(&init_net,
+                                             &mlxsw_sp->netdevice_nb);
        if (err) {
                dev_err(mlxsw_sp->bus_info->dev, "Failed to register netdev 
notifier\n");
                goto err_netdev_notifier;
@@ -4887,7 +4888,8 @@ static int mlxsw_sp_init(struct mlxsw_core *mlxsw_core,
 err_ports_create:
        mlxsw_sp_dpipe_fini(mlxsw_sp);
 err_dpipe_init:
-       unregister_netdevice_notifier(&mlxsw_sp->netdevice_nb);
+       unregister_netdevice_notifier_net(&init_net,
+                                         &mlxsw_sp->netdevice_nb);
 err_netdev_notifier:
        if (mlxsw_sp->clock)
                mlxsw_sp->ptp_ops->fini(mlxsw_sp->ptp_state);
@@ -4973,7 +4975,8 @@ static void mlxsw_sp_fini(struct mlxsw_core *mlxsw_core)
 
        mlxsw_sp_ports_remove(mlxsw_sp);
        mlxsw_sp_dpipe_fini(mlxsw_sp);
-       unregister_netdevice_notifier(&mlxsw_sp->netdevice_nb);
+       unregister_netdevice_notifier_net(&init_net,
+                                         &mlxsw_sp->netdevice_nb);
        if (mlxsw_sp->clock) {
                mlxsw_sp->ptp_ops->fini(mlxsw_sp->ptp_state);
                mlxsw_sp->ptp_ops->clock_fini(mlxsw_sp->clock);
-- 
2.21.0

Reply via email to