fs_get_u64_arg() returns -errno on failure, but errno is not reset before strtoull(), so an unrelated earlier failure is reported. It also accepts a value with trailing garbage, and base 0 means a leading zero selects octal.
Signed-off-by: Stephen Hemminger <[email protected]> --- drivers/net/failsafe/failsafe_args.c | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/drivers/net/failsafe/failsafe_args.c b/drivers/net/failsafe/failsafe_args.c index 1b8f1d3050..f256a9f6a0 100644 --- a/drivers/net/failsafe/failsafe_args.c +++ b/drivers/net/failsafe/failsafe_args.c @@ -345,24 +345,6 @@ fs_remove_sub_devices_definition(char params[DEVARGS_MAXLEN]) return 0; } -static int -fs_get_u64_arg(const char *key __rte_unused, - const char *value, void *out) -{ - uint64_t *u64 = out; - char *endptr = NULL; - - if ((value == NULL) || (out == NULL)) - return -EINVAL; - errno = 0; - *u64 = strtoull(value, &endptr, 0); - if (errno != 0) - return -errno; - if (endptr == value) - return -1; - return 0; -} - static int fs_get_mac_addr_arg(const char *key __rte_unused, const char *value, void *out) @@ -416,7 +398,7 @@ failsafe_args_parse(struct rte_eth_dev *dev, const char *params) if (arg_count == 1) { ret = rte_kvargs_process(kvlist, PMD_FAILSAFE_HOTPLUG_POLL_KVARG, - &fs_get_u64_arg, &failsafe_hotplug_poll); + rte_kvargs_handle_u64, &failsafe_hotplug_poll); if (ret < 0) goto free_kvlist; } -- 2.53.0

