[PATCH 11/62] raw/skeleton: use kvargs numeric helpers
Stephen Hemminger
stephen at networkplumber.org
Mon Sep 14 07:46:42 CEST 2026
The selftest argument is converted with atoi(), so a malformed value is
silently taken as zero. Make it a bool and use rte_kvargs_handle_bool,
which rejects anything which is not a recognized boolean and removes
the need for the separate range check on the result.
The boolean uses rte_kvargs_process_opt(), so that a bare key with no
value enables the option.
Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
---
drivers/raw/skeleton/skeleton_rawdev.c | 20 ++++----------------
1 file changed, 4 insertions(+), 16 deletions(-)
diff --git a/drivers/raw/skeleton/skeleton_rawdev.c b/drivers/raw/skeleton/skeleton_rawdev.c
index 6e99d35536..4e20952e47 100644
--- a/drivers/raw/skeleton/skeleton_rawdev.c
+++ b/drivers/raw/skeleton/skeleton_rawdev.c
@@ -658,22 +658,10 @@ skeleton_rawdev_destroy(const char *name)
return 0;
}
-static int
-skeldev_get_selftest(const char *key __rte_unused,
- const char *value,
- void *opaque)
-{
- int *flag = opaque;
- if (value == NULL || opaque == NULL)
- return -EINVAL;
- *flag = atoi(value);
- return 0;
-}
-
static int
skeldev_parse_vdev_args(struct rte_vdev_device *vdev)
{
- int selftest = 0;
+ bool selftest = false;
const char *name;
const char *params;
@@ -693,10 +681,10 @@ skeldev_parse_vdev_args(struct rte_vdev_device *vdev)
"Ignoring unsupported params supplied '%s'",
name);
} else {
- int ret = rte_kvargs_process(kvlist,
+ int ret = rte_kvargs_process_opt(kvlist,
SKELETON_SELFTEST_ARG,
- skeldev_get_selftest, &selftest);
- if (ret != 0 || (selftest < 0 || selftest > 1)) {
+ rte_kvargs_handle_bool, &selftest);
+ if (ret != 0) {
SKELETON_PMD_ERR("%s: Error in parsing args",
name);
rte_kvargs_free(kvlist);
--
2.53.0
More information about the dev
mailing list