From: Jiri Pirko Date: Tue, 8 Nov 2022 13:22:07 +0000 (+0100) Subject: net: devlink: move netdev notifier block to dest namespace during reload X-Git-Tag: v6.2-rc1~99^2~251^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=15feb56e30efea95992f5c572cee753db205eb7b;p=thirdparty%2Fkernel%2Flinux.git net: devlink: move netdev notifier block to dest namespace during reload The notifier block tracking netdev changes in devlink is registered during devlink_alloc() per-net, it is then unregistered in devlink_free(). When devlink moves from net namespace to another one, the notifier block needs to move along. Fix this by adding forgotten call to move the block. Reported-by: Ido Schimmel Fixes: 02a68a47eade ("net: devlink: track netdev with devlink_port assigned") Reviewed-by: Ido Schimmel Tested-by: Ido Schimmel Signed-off-by: Jiri Pirko Signed-off-by: Jakub Kicinski --- diff --git a/net/core/devlink.c b/net/core/devlink.c index 40fcdded57e6b..ea0b319385fc0 100644 --- a/net/core/devlink.c +++ b/net/core/devlink.c @@ -4502,8 +4502,11 @@ static int devlink_reload(struct devlink *devlink, struct net *dest_net, if (err) return err; - if (dest_net && !net_eq(dest_net, curr_net)) + if (dest_net && !net_eq(dest_net, curr_net)) { + move_netdevice_notifier_net(curr_net, dest_net, + &devlink->netdevice_nb); write_pnet(&devlink->_net, dest_net); + } err = devlink->ops->reload_up(devlink, action, limit, actions_performed, extack); devlink_reload_failed_set(devlink, !!err);