OSDN Git Service

devlink: don't use strcpy() to copy param value
authorJiri Pirko <jiri@nvidia.com>
Fri, 10 Feb 2023 10:01:25 +0000 (11:01 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 13 Feb 2023 09:49:14 +0000 (09:49 +0000)
No need to treat string params any different comparing to other types.
Rely on the struct assign to copy the whole struct, including the
string.

Signed-off-by: Jiri Pirko <jiri@nvidia.com>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Acked-by: Jakub Kicinski <kuba@kernel.org>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/devlink/leftover.c

index 61b51ed..2f9e309 100644 (file)
@@ -4387,10 +4387,7 @@ static int __devlink_nl_cmd_param_set_doit(struct devlink *devlink,
                return -EOPNOTSUPP;
 
        if (cmode == DEVLINK_PARAM_CMODE_DRIVERINIT) {
-               if (param->type == DEVLINK_PARAM_TYPE_STRING)
-                       strcpy(param_item->driverinit_value.vstr, value.vstr);
-               else
-                       param_item->driverinit_value = value;
+               param_item->driverinit_value = value;
                param_item->driverinit_value_valid = true;
        } else {
                if (!param->set)
@@ -9655,10 +9652,7 @@ int devl_param_driverinit_value_get(struct devlink *devlink, u32 param_id,
                                                      DEVLINK_PARAM_CMODE_DRIVERINIT)))
                return -EOPNOTSUPP;
 
-       if (param_item->param->type == DEVLINK_PARAM_TYPE_STRING)
-               strcpy(init_val->vstr, param_item->driverinit_value.vstr);
-       else
-               *init_val = param_item->driverinit_value;
+       *init_val = param_item->driverinit_value;
 
        return 0;
 }
@@ -9689,10 +9683,7 @@ void devl_param_driverinit_value_set(struct devlink *devlink, u32 param_id,
                                                      DEVLINK_PARAM_CMODE_DRIVERINIT)))
                return;
 
-       if (param_item->param->type == DEVLINK_PARAM_TYPE_STRING)
-               strcpy(param_item->driverinit_value.vstr, init_val.vstr);
-       else
-               param_item->driverinit_value = init_val;
+       param_item->driverinit_value = init_val;
        param_item->driverinit_value_valid = true;
 
        devlink_param_notify(devlink, 0, param_item, DEVLINK_CMD_PARAM_NEW);