devlink: Change devlink_reload_supported() param type
authorMoshe Shemesh <moshe@mellanox.com>
Wed, 7 Oct 2020 06:00:42 +0000 (09:00 +0300)
committerJakub Kicinski <kuba@kernel.org>
Fri, 9 Oct 2020 19:06:52 +0000 (12:06 -0700)
Change devlink_reload_supported() function to get devlink_ops pointer
param instead of devlink pointer param.
This change will be used in the next patch to check if devlink reload is
supported before devlink instance is allocated.

Signed-off-by: Moshe Shemesh <moshe@mellanox.com>
Reviewed-by: Jakub Kicinski <kuba@kernel.org>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/core/devlink.c

index 65b8ac8..5c45b39 100644 (file)
@@ -2963,9 +2963,9 @@ static void devlink_reload_netns_change(struct devlink *devlink,
                                     DEVLINK_CMD_PARAM_NEW);
 }
 
-static bool devlink_reload_supported(const struct devlink *devlink)
+static bool devlink_reload_supported(const struct devlink_ops *ops)
 {
-       return devlink->ops->reload_down && devlink->ops->reload_up;
+       return ops->reload_down && ops->reload_up;
 }
 
 static void devlink_reload_failed_set(struct devlink *devlink,
@@ -3009,7 +3009,7 @@ static int devlink_nl_cmd_reload(struct sk_buff *skb, struct genl_info *info)
        struct net *dest_net = NULL;
        int err;
 
-       if (!devlink_reload_supported(devlink))
+       if (!devlink_reload_supported(devlink->ops))
                return -EOPNOTSUPP;
 
        err = devlink_resources_validate(devlink, NULL, info);
@@ -7679,7 +7679,7 @@ EXPORT_SYMBOL_GPL(devlink_register);
 void devlink_unregister(struct devlink *devlink)
 {
        mutex_lock(&devlink_mutex);
-       WARN_ON(devlink_reload_supported(devlink) &&
+       WARN_ON(devlink_reload_supported(devlink->ops) &&
                devlink->reload_enabled);
        devlink_notify(devlink, DEVLINK_CMD_DEL);
        list_del(&devlink->list);
@@ -8720,7 +8720,7 @@ __devlink_param_driverinit_value_set(struct devlink *devlink,
 int devlink_param_driverinit_value_get(struct devlink *devlink, u32 param_id,
                                       union devlink_param_value *init_val)
 {
-       if (!devlink_reload_supported(devlink))
+       if (!devlink_reload_supported(devlink->ops))
                return -EOPNOTSUPP;
 
        return __devlink_param_driverinit_value_get(&devlink->param_list,
@@ -8767,7 +8767,7 @@ int devlink_port_param_driverinit_value_get(struct devlink_port *devlink_port,
 {
        struct devlink *devlink = devlink_port->devlink;
 
-       if (!devlink_reload_supported(devlink))
+       if (!devlink_reload_supported(devlink->ops))
                return -EOPNOTSUPP;
 
        return __devlink_param_driverinit_value_get(&devlink_port->param_list,
@@ -9968,7 +9968,7 @@ static void __net_exit devlink_pernet_pre_exit(struct net *net)
        mutex_lock(&devlink_mutex);
        list_for_each_entry(devlink, &devlink_list, list) {
                if (net_eq(devlink_net(devlink), net)) {
-                       if (WARN_ON(!devlink_reload_supported(devlink)))
+                       if (WARN_ON(!devlink_reload_supported(devlink->ops)))
                                continue;
                        err = devlink_reload(devlink, &init_net, NULL);
                        if (err && err != -EOPNOTSUPP)