mirror of https://gitee.com/openkylin/linux.git
mlxsw: spectrum: Use per-netns netdevice notifier registration
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 <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
a30c7b429f
commit
f1cdaa077c
|
@ -4864,7 +4864,8 @@ static int mlxsw_sp_init(struct mlxsw_core *mlxsw_core,
|
||||||
* respin.
|
* respin.
|
||||||
*/
|
*/
|
||||||
mlxsw_sp->netdevice_nb.notifier_call = mlxsw_sp_netdevice_event;
|
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) {
|
if (err) {
|
||||||
dev_err(mlxsw_sp->bus_info->dev, "Failed to register netdev notifier\n");
|
dev_err(mlxsw_sp->bus_info->dev, "Failed to register netdev notifier\n");
|
||||||
goto err_netdev_notifier;
|
goto err_netdev_notifier;
|
||||||
|
@ -4887,7 +4888,8 @@ static int mlxsw_sp_init(struct mlxsw_core *mlxsw_core,
|
||||||
err_ports_create:
|
err_ports_create:
|
||||||
mlxsw_sp_dpipe_fini(mlxsw_sp);
|
mlxsw_sp_dpipe_fini(mlxsw_sp);
|
||||||
err_dpipe_init:
|
err_dpipe_init:
|
||||||
unregister_netdevice_notifier(&mlxsw_sp->netdevice_nb);
|
unregister_netdevice_notifier_net(&init_net,
|
||||||
|
&mlxsw_sp->netdevice_nb);
|
||||||
err_netdev_notifier:
|
err_netdev_notifier:
|
||||||
if (mlxsw_sp->clock)
|
if (mlxsw_sp->clock)
|
||||||
mlxsw_sp->ptp_ops->fini(mlxsw_sp->ptp_state);
|
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_ports_remove(mlxsw_sp);
|
||||||
mlxsw_sp_dpipe_fini(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) {
|
if (mlxsw_sp->clock) {
|
||||||
mlxsw_sp->ptp_ops->fini(mlxsw_sp->ptp_state);
|
mlxsw_sp->ptp_ops->fini(mlxsw_sp->ptp_state);
|
||||||
mlxsw_sp->ptp_ops->clock_fini(mlxsw_sp->clock);
|
mlxsw_sp->ptp_ops->clock_fini(mlxsw_sp->clock);
|
||||||
|
|
Loading…
Reference in New Issue