common/mlx5: fix probing return value when failing

Message ID 20220117174914.82613-1-bingz@nvidia.com (mailing list archive)
State Accepted, archived
Delegated to: Raslan Darawsheh
Headers
Series common/mlx5: fix probing return value when failing |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/iol-testing warning apply patch failure
ci/intel-Testing success Testing PASS

Commit Message

Bing Zhao Jan. 17, 2022, 5:49 p.m. UTC
  While probing the device with unsupported class, the process should
fail because no appropriate driver was found. After traversing all
the drivers, an error value should be returned for the case.

In the previous implementation, zero value indicating probing success
was wrongly returned.

Fixes: ad435d320473 ("common/mlx5: add bus-agnostic layer")
Cc: xuemingl@nvidia.com
Cc: stable@dpdk.org

Signed-off-by: Bing Zhao <bingz@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/common/mlx5/mlx5_common.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)
  

Comments

Raslan Darawsheh Jan. 26, 2022, 3:27 p.m. UTC | #1
Hi,

> -----Original Message-----
> From: Bing Zhao <bingz@nvidia.com>
> Sent: Monday, January 17, 2022 7:49 PM
> To: Slava Ovsiienko <viacheslavo@nvidia.com>; Matan Azrad
> <matan@nvidia.com>
> Cc: dev@dpdk.org; Raslan Darawsheh <rasland@nvidia.com>;
> Xueming(Steven) Li <xuemingl@nvidia.com>; stable@dpdk.org
> Subject: [PATCH] common/mlx5: fix probing return value when failing
> 
> While probing the device with unsupported class, the process should
> fail because no appropriate driver was found. After traversing all
> the drivers, an error value should be returned for the case.
> 
> In the previous implementation, zero value indicating probing success
> was wrongly returned.
> 
> Fixes: ad435d320473 ("common/mlx5: add bus-agnostic layer")
> Cc: xuemingl@nvidia.com
> Cc: stable@dpdk.org
> 
> Signed-off-by: Bing Zhao <bingz@nvidia.com>
> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>

Patch applied to next-net-mlx,

Kindest regards,
Raslan Darawsheh
  

Patch

diff --git a/drivers/common/mlx5/mlx5_common.c b/drivers/common/mlx5/mlx5_common.c
index 185db4d004..47a541f5ef 100644
--- a/drivers/common/mlx5/mlx5_common.c
+++ b/drivers/common/mlx5/mlx5_common.c
@@ -644,7 +644,7 @@  drivers_probe(struct mlx5_common_device *cdev, uint32_t user_classes)
 	struct mlx5_class_driver *driver;
 	uint32_t enabled_classes = 0;
 	bool already_loaded;
-	int ret;
+	int ret = -EINVAL;
 
 	TAILQ_FOREACH(driver, &drivers_list, next) {
 		if ((driver->drv_class & user_classes) == 0)
@@ -666,8 +666,10 @@  drivers_probe(struct mlx5_common_device *cdev, uint32_t user_classes)
 		}
 		enabled_classes |= driver->drv_class;
 	}
-	cdev->classes_loaded |= enabled_classes;
-	return 0;
+	if (!ret) {
+		cdev->classes_loaded |= enabled_classes;
+		return 0;
+	}
 probe_err:
 	/*
 	 * Need to remove only drivers which were not probed before this probe