common/mlx5: fix extraction of auxiliary network device name

Message ID 20250615074129.52396-1-getelson@nvidia.com (mailing list archive)
State Accepted
Delegated to: Raslan Darawsheh
Headers
Series common/mlx5: fix extraction of auxiliary network device name |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS
ci/Intel-compilation success Compilation OK
ci/iol-marvell-Functional success Functional Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/github-robot: build success github build: passed
ci/iol-unit-arm64-testing success Testing PASS
ci/iol-compile-amd64-testing fail Testing issues
ci/iol-abi-testing success Testing PASS
ci/iol-compile-arm64-testing success Testing PASS
ci/aws-unit-testing success Unit Testing PASS
ci/intel-Testing success Testing PASS
ci/intel-Functional success Functional PASS
ci/iol-sample-apps-testing success Testing PASS
ci/iol-unit-amd64-testing fail Testing issues

Commit Message

Gregory Etelson June 15, 2025, 7:41 a.m. UTC
The PMD reads auxiliary network device name from the Linux SYSFS.

The current implementation closed directory context before it copied
a file name from that directory into internal buffer.

The patch closes SYSFS directory after file name was copied.

Fixes: 777b72a9339c ("common/mlx5: support auxiliary bus")
Cc: stable@dpdk.org

Signed-off-by: Gregory Etelson <getelson@nvidia.com>
Acked-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
---
 drivers/common/mlx5/linux/mlx5_common_auxiliary.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)
  

Comments

Thomas Monjalon June 26, 2025, 1:14 p.m. UTC | #1
15/06/2025 09:41, Gregory Etelson:
> The PMD reads auxiliary network device name from the Linux SYSFS.
> 
> The current implementation closed directory context before it copied
> a file name from that directory into internal buffer.
> 
> The patch closes SYSFS directory after file name was copied.
> 
> Fixes: 777b72a9339c ("common/mlx5: support auxiliary bus")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Gregory Etelson <getelson@nvidia.com>
> Acked-by: Dariusz Sosnowski <dsosnowski@nvidia.com>

It was working by chance before this fix.

Applied, thanks.
  

Patch

diff --git a/drivers/common/mlx5/linux/mlx5_common_auxiliary.c b/drivers/common/mlx5/linux/mlx5_common_auxiliary.c
index b4ea604820..d2a7758285 100644
--- a/drivers/common/mlx5/linux/mlx5_common_auxiliary.c
+++ b/drivers/common/mlx5/linux/mlx5_common_auxiliary.c
@@ -26,8 +26,8 @@  mlx5_auxiliary_get_child_name(const char *dev, const char *node,
 {
 	DIR *dir;
 	struct dirent *dent;
-	MKSTR(path, "%s/%s%s", AUXILIARY_SYSFS_PATH, dev, node);
 
+	MKSTR(path, "%s/%s%s", AUXILIARY_SYSFS_PATH, dev, node);
 	dir = opendir(path);
 	if (dir == NULL) {
 		rte_errno = errno;
@@ -38,14 +38,17 @@  mlx5_auxiliary_get_child_name(const char *dev, const char *node,
 		if (dent->d_name[0] != '.')
 			break;
 	}
-	closedir(dir);
 	if (dent == NULL) {
 		rte_errno = ENOENT;
-		return -rte_errno;
+		goto end;
 	}
 	if (rte_strscpy(child, dent->d_name, size) < 0)
-		return -rte_errno;
-	return 0;
+		goto end;
+	rte_errno = 0;
+
+end:
+	closedir(dir);
+	return -rte_errno;
 }
 
 static int