[PATCH 52/62] event/opdl: use kvargs numeric helpers
Stephen Hemminger
stephen at networkplumber.org
Mon Sep 14 07:47:23 CEST 2026
All three handlers use atoi(), which cannot report an error, so a
malformed value is silently taken as zero. Zero is within the accepted
range for each of these arguments, so a typo was accepted and quietly
applied rather than rejected.
The booleans use 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/event/opdl/opdl_evdev.c | 49 ++++++---------------------------
1 file changed, 9 insertions(+), 40 deletions(-)
diff --git a/drivers/event/opdl/opdl_evdev.c b/drivers/event/opdl/opdl_evdev.c
index ffa65ef930..4650d3eca8 100644
--- a/drivers/event/opdl/opdl_evdev.c
+++ b/drivers/event/opdl/opdl_evdev.c
@@ -3,6 +3,7 @@
*/
#include <inttypes.h>
+#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
@@ -580,38 +581,6 @@ opdl_close(struct rte_eventdev *dev)
return 0;
}
-static int
-assign_numa_node(const char *key __rte_unused, const char *value, void *opaque)
-{
- int *socket_id = opaque;
- *socket_id = atoi(value);
- if (*socket_id >= RTE_MAX_NUMA_NODES)
- return -1;
- return 0;
-}
-
-static int
-set_do_validation(const char *key __rte_unused, const char *value, void *opaque)
-{
- int *do_val = opaque;
- *do_val = atoi(value);
- if (*do_val != 0)
- *do_val = 1;
-
- return 0;
-}
-static int
-set_do_test(const char *key __rte_unused, const char *value, void *opaque)
-{
- int *do_test = opaque;
-
- *do_test = atoi(value);
-
- if (*do_test != 0)
- *do_test = 1;
- return 0;
-}
-
static int
opdl_probe(struct rte_vdev_device *vdev)
{
@@ -650,8 +619,8 @@ opdl_probe(struct rte_vdev_device *vdev)
struct rte_eventdev *dev;
struct opdl_evdev *opdl;
int socket_id = rte_socket_id();
- int do_validation = 0;
- int do_test = 0;
+ bool do_validation = false;
+ bool do_test = false;
int str_len;
int test_result = 0;
@@ -666,7 +635,7 @@ opdl_probe(struct rte_vdev_device *vdev)
name);
} else {
int ret = rte_kvargs_process(kvlist, NUMA_NODE_ARG,
- assign_numa_node, &socket_id);
+ rte_kvargs_handle_socket_id, &socket_id);
if (ret != 0) {
PMD_DRV_LOG(ERR,
"%s: Error parsing numa node parameter",
@@ -676,8 +645,8 @@ opdl_probe(struct rte_vdev_device *vdev)
return ret;
}
- ret = rte_kvargs_process(kvlist, DO_VALIDATION_ARG,
- set_do_validation, &do_validation);
+ ret = rte_kvargs_process_opt(kvlist, DO_VALIDATION_ARG,
+ rte_kvargs_handle_bool, &do_validation);
if (ret != 0) {
PMD_DRV_LOG(ERR,
"%s: Error parsing do validation parameter",
@@ -686,8 +655,8 @@ opdl_probe(struct rte_vdev_device *vdev)
return ret;
}
- ret = rte_kvargs_process(kvlist, DO_TEST_ARG,
- set_do_test, &do_test);
+ ret = rte_kvargs_process_opt(kvlist, DO_TEST_ARG,
+ rte_kvargs_handle_bool, &do_test);
if (ret != 0) {
PMD_DRV_LOG(ERR,
"%s: Error parsing do test parameter",
@@ -734,7 +703,7 @@ opdl_probe(struct rte_vdev_device *vdev)
str_len = strlen(name);
memcpy(opdl->service_name, name, str_len);
- if (do_test == 1)
+ if (do_test)
test_result = opdl_selftest();
done:
--
2.53.0
More information about the dev
mailing list