From: Jie Liu <[email protected]>

rte_eth_devargs_parse() returns a positive value (the number of
representor ports) when a representor is specified in the device
string, and a negative value on error.  The old check treated any
non-zero return as an error, so probing a representor device always
failed.

Only treat a negative return as an error, so the positive
representor count is not misreported.

Fixes: d8e4e075acb4 ("net/sxe2: add probing skeleton")
Cc: [email protected]
Signed-off-by: Jie Liu <[email protected]>
---
 drivers/net/sxe2/sxe2_ethdev.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/sxe2/sxe2_ethdev.c b/drivers/net/sxe2/sxe2_ethdev.c
index 8c60c9cfde..3871acdc77 100644
--- a/drivers/net/sxe2/sxe2_ethdev.c
+++ b/drivers/net/sxe2/sxe2_ethdev.c
@@ -2318,7 +2318,7 @@ static int32_t sxe2_parse_eth_devargs(struct rte_device 
*dev,
                ret = rte_eth_devargs_parse(dev->devargs->cls_str,
                                            eth_da,
                                            1);
-               if (ret) {
+               if (ret < 0) {
                        PMD_LOG_ERR(INIT, "Failed to parse device arguments: 
%s",
                                dev->devargs->cls_str);
                        return -rte_errno;
@@ -2329,7 +2329,7 @@ static int32_t sxe2_parse_eth_devargs(struct rte_device 
*dev,
                ret = rte_eth_devargs_parse(dev->devargs->args,
                                            eth_da,
                                            1);
-               if (ret) {
+               if (ret < 0) {
                        PMD_LOG_ERR(INIT, "Failed to parse device arguments: 
%s",
                                dev->devargs->args);
                        return -rte_errno;
-- 
2.52.0

Reply via email to