]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
devlink: fix net namespace reference leak in reload
authorOr Har-Toov <ohartoov@nvidia.com>
Wed, 29 Jul 2026 08:06:00 +0000 (11:06 +0300)
committerJakub Kicinski <kuba@kernel.org>
Sat, 1 Aug 2026 01:23:44 +0000 (18:23 -0700)
devlink_nl_reload_doit() calls devlink_netns_get(), which returns a net
with a held reference. When the requested namespace differs from the
current one and the reload action is not DRIVER_REINIT, the function
returns -EOPNOTSUPP without releasing the reference. Add the missing
put_net() on this error path.

Fixes: 2edd92570441 ("devlink: don't allow to change net namespace for FW_ACTIVATE reload action")
Signed-off-by: Or Har-Toov <ohartoov@nvidia.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
Reviewed-by: Antoine Tenart <atenart@kernel.org>
Link: https://patch.msgid.link/20260729080600.2427721-1-tariqt@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/devlink/dev.c

index 57b2b8f035436b689355c8adb2788a15122dbf60..fd5633fa88ecd422a402a74faeb417be1c8f930c 100644 (file)
@@ -578,6 +578,7 @@ int devlink_nl_reload_doit(struct sk_buff *skb, struct genl_info *info)
                    action != DEVLINK_RELOAD_ACTION_DRIVER_REINIT) {
                        NL_SET_ERR_MSG_MOD(info->extack,
                                           "Changing namespace is only supported for reinit action");
+                       put_net(dest_net);
                        return -EOPNOTSUPP;
                }
        }