[PATCH v2 38/61] net/hns3: use kvargs numeric helpers
Stephen Hemminger
stephen at networkplumber.org
Tue Sep 29 18:36:41 CEST 2026
hns3_parse_mbx_time_limit() checks neither errno nor the end pointer, so
a malformed value such as "abc" is taken as zero and then silently
ignored by the range test that follows.
The range test is now part of the conversion, which keeps the existing
behaviour of leaving the default in place when the value is out of
range.
The device capability mask parser is converted separately, later in this
series, since it needs the hexadecimal handler rather than a decimal one.
Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
---
drivers/net/hns3/hns3_common.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/net/hns3/hns3_common.c b/drivers/net/hns3/hns3_common.c
index 29b51856d9..c21740ba5e 100644
--- a/drivers/net/hns3/hns3_common.c
+++ b/drivers/net/hns3/hns3_common.c
@@ -231,14 +231,13 @@ hns3_parse_mbx_time_limit(const char *key, const char *value, void *extra_args)
if (value == NULL || extra_args == NULL)
return 0;
- val = strtoul(value, NULL, HNS3_CONVERT_TO_DECIMAL);
-
/*
* 500ms is empirical value in process of mailbox communication. If
* the delay value is set to one lower than the empirical value, mailbox
* communication may fail.
*/
- if (val > HNS3_MBX_DEF_TIME_LIMIT_MS && val <= UINT16_MAX)
+ if (rte_kvargs_to_uint(value, HNS3_MBX_DEF_TIME_LIMIT_MS + 1,
+ UINT16_MAX, &val) == 0)
*(uint16_t *)extra_args = val;
return 0;
--
2.53.0
More information about the dev
mailing list