diff options
Diffstat (limited to 'net/core/devlink.c')
| -rw-r--r-- | net/core/devlink.c | 14 | 
1 files changed, 7 insertions, 7 deletions
diff --git a/net/core/devlink.c b/net/core/devlink.c index 032d6d0a5ce6..0bfc144df8b9 100644 --- a/net/core/devlink.c +++ b/net/core/devlink.c @@ -4742,11 +4742,8 @@ static int devlink_reload(struct devlink *devlink, struct net *dest_net,  	if (err)  		return err; -	if (dest_net && !net_eq(dest_net, curr_net)) { -		move_netdevice_notifier_net(curr_net, dest_net, -					    &devlink->netdevice_nb); +	if (dest_net && !net_eq(dest_net, curr_net))  		write_pnet(&devlink->_net, dest_net); -	}  	err = devlink->ops->reload_up(devlink, action, limit, actions_performed, extack);  	devlink_reload_failed_set(devlink, !!err); @@ -9979,7 +9976,7 @@ struct devlink *devlink_alloc_ns(const struct devlink_ops *ops,  		goto err_xa_alloc;  	devlink->netdevice_nb.notifier_call = devlink_netdevice_event; -	ret = register_netdevice_notifier_net(net, &devlink->netdevice_nb); +	ret = register_netdevice_notifier(&devlink->netdevice_nb);  	if (ret)  		goto err_register_netdevice_notifier; @@ -10171,8 +10168,7 @@ void devlink_free(struct devlink *devlink)  	xa_destroy(&devlink->snapshot_ids);  	xa_destroy(&devlink->ports); -	WARN_ON_ONCE(unregister_netdevice_notifier_net(devlink_net(devlink), -						       &devlink->netdevice_nb)); +	WARN_ON_ONCE(unregister_netdevice_notifier(&devlink->netdevice_nb));  	xa_erase(&devlinks, devlink->index); @@ -10503,6 +10499,8 @@ static int devlink_netdevice_event(struct notifier_block *nb,  		break;  	case NETDEV_REGISTER:  	case NETDEV_CHANGENAME: +		if (devlink_net(devlink) != dev_net(netdev)) +			return NOTIFY_OK;  		/* Set the netdev on top of previously set type. Note this  		 * event happens also during net namespace change so here  		 * we take into account netdev pointer appearing in this @@ -10512,6 +10510,8 @@ static int devlink_netdevice_event(struct notifier_block *nb,  					netdev);  		break;  	case NETDEV_UNREGISTER: +		if (devlink_net(devlink) != dev_net(netdev)) +			return NOTIFY_OK;  		/* Clear netdev pointer, but not the type. This event happens  		 * also during net namespace change so we need to clear  		 * pointer to netdev that is going to another net namespace.  | 
