[PATCH] ethdev: fix null error struct in flow configure
Maayan Kashani
mkashani at nvidia.com
Thu May 29 07:56:10 CEST 2025
RTE flow configure returned error value w/o filling the
error struct which caused a crash on complain function.
Filling the error struct fixed the issue.
Signed-off-by: Maayan Kashani <mkashani at nvidia.com>
Fixes: 4ff58b734bc9 ("ethdev: introduce flow engine configuration")
Cc: stable at dpdk.org
---
lib/ethdev/rte_flow.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/lib/ethdev/rte_flow.c b/lib/ethdev/rte_flow.c
index 9f8d8f3dc2d..fe8f43caff7 100644
--- a/lib/ethdev/rte_flow.c
+++ b/lib/ethdev/rte_flow.c
@@ -1725,21 +1725,21 @@ rte_flow_configure(uint16_t port_id,
FLOW_LOG(INFO,
"Device with port_id=%"PRIu16" is not configured.",
port_id);
- return -EINVAL;
+ goto error;
}
if (dev->data->dev_started != 0) {
FLOW_LOG(INFO,
"Device with port_id=%"PRIu16" already started.",
port_id);
- return -EINVAL;
+ goto error;
}
if (port_attr == NULL) {
FLOW_LOG(ERR, "Port %"PRIu16" info is NULL.", port_id);
- return -EINVAL;
+ goto error;
}
if (queue_attr == NULL) {
FLOW_LOG(ERR, "Port %"PRIu16" queue info is NULL.", port_id);
- return -EINVAL;
+ goto error;
}
if ((port_attr->flags & RTE_FLOW_PORT_FLAG_SHARE_INDIRECT) &&
!rte_eth_dev_is_valid_port(port_attr->host_port_id)) {
@@ -1760,6 +1760,10 @@ rte_flow_configure(uint16_t port_id,
return rte_flow_error_set(error, ENOTSUP,
RTE_FLOW_ERROR_TYPE_UNSPECIFIED,
NULL, rte_strerror(ENOTSUP));
+error:
+ return rte_flow_error_set(error, EINVAL,
+ RTE_FLOW_ERROR_TYPE_UNSPECIFIED,
+ NULL, rte_strerror(EINVAL));
}
RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_flow_pattern_template_create, 22.03)
--
2.21.0
More information about the dev
mailing list