devlink: update the code in netns move to latest helpers
authorJakub Kicinski <kuba@kernel.org>
Fri, 6 Jan 2023 06:33:55 +0000 (22:33 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 6 Jan 2023 12:56:18 +0000 (12:56 +0000)
devlink_pernet_pre_exit() is the only obvious place which takes
the instance lock without using the devl_ helpers. Update the code
and move the error print after releasing the reference
(having unlock and put together feels slightly idiomatic).

Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/devlink/core.c

index 88c88b8..d3b8336 100644 (file)
@@ -299,15 +299,16 @@ static void __net_exit devlink_pernet_pre_exit(struct net *net)
         */
        devlinks_xa_for_each_registered_get(net, index, devlink) {
                WARN_ON(!(devlink->features & DEVLINK_F_RELOAD));
-               mutex_lock(&devlink->lock);
+               devl_lock(devlink);
                err = devlink_reload(devlink, &init_net,
                                     DEVLINK_RELOAD_ACTION_DRIVER_REINIT,
                                     DEVLINK_RELOAD_LIMIT_UNSPEC,
                                     &actions_performed, NULL);
-               mutex_unlock(&devlink->lock);
+               devl_unlock(devlink);
+               devlink_put(devlink);
+
                if (err && err != -EOPNOTSUPP)
                        pr_warn("Failed to reload devlink instance into init_net\n");
-               devlink_put(devlink);
        }
 }