patch 'bus/vdev: fix device reinitialization' has been queued to stable release 23.11.2
Xueming Li
xuemingl at nvidia.com
Mon Aug 12 14:50:21 CEST 2024
Hi,
FYI, your patch has been queued to stable release 23.11.2
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 08/14/24. So please
shout if anyone has objections.
Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.
Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=bef8327055d34e3a4e5f26d443322a2a3d81d273
Thanks.
Xueming Li <xuemingl at nvidia.com>
---
>From bef8327055d34e3a4e5f26d443322a2a3d81d273 Mon Sep 17 00:00:00 2001
From: Mingjin Ye <mingjinx.ye at intel.com>
Date: Tue, 16 Jul 2024 09:53:28 +0000
Subject: [PATCH] bus/vdev: fix device reinitialization
Cc: Xueming Li <xuemingl at nvidia.com>
[ upstream commit 1bd1ab6fd010837773473d821f9284369b37264c ]
In secondary processes, insert_vdev() may be called multiple times on the
same device due to multi-process hot-plugging of the vdev bus and EAL
parameters to add the same vdev.
In this case, when rte_devargs_insert() is called, the devargs->name
reference will be invalidated because rte_devargs_insert() destroys the
just-allocated devargs and replaces the pointer from the devargs list.
As a result, the reference to devargs->name stored in dev->device.name
will be invalid.
This patch fixes the issue by setting the device name after calling
rte_devargs_insert().
Fixes: cdb068f031c6 ("bus/vdev: scan by multi-process channel")
Signed-off-by: Mingjin Ye <mingjinx.ye at intel.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov at intel.com>
---
drivers/bus/vdev/vdev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/bus/vdev/vdev.c b/drivers/bus/vdev/vdev.c
index 14cf856237..dcedd0d4a0 100644
--- a/drivers/bus/vdev/vdev.c
+++ b/drivers/bus/vdev/vdev.c
@@ -307,7 +307,6 @@ insert_vdev(const char *name, const char *args,
dev->device.bus = &rte_vdev_bus;
dev->device.numa_node = SOCKET_ID_ANY;
- dev->device.name = devargs->name;
if (find_vdev(name)) {
/*
@@ -322,6 +321,7 @@ insert_vdev(const char *name, const char *args,
if (init)
rte_devargs_insert(&devargs);
dev->device.devargs = devargs;
+ dev->device.name = devargs->name;
TAILQ_INSERT_TAIL(&vdev_device_list, dev, next);
if (p_dev)
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2024-08-12 20:44:07.078678436 +0800
+++ 0144-bus-vdev-fix-device-reinitialization.patch 2024-08-12 20:44:02.565069387 +0800
@@ -1 +1 @@
-From 1bd1ab6fd010837773473d821f9284369b37264c Mon Sep 17 00:00:00 2001
+From bef8327055d34e3a4e5f26d443322a2a3d81d273 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl at nvidia.com>
+
+[ upstream commit 1bd1ab6fd010837773473d821f9284369b37264c ]
@@ -20 +22,0 @@
-Cc: stable at dpdk.org
@@ -29 +31 @@
-index 38d05a9fe9..ec7abe7cda 100644
+index 14cf856237..dcedd0d4a0 100644
@@ -32 +34 @@
-@@ -288,7 +288,6 @@ insert_vdev(const char *name, const char *args,
+@@ -307,7 +307,6 @@ insert_vdev(const char *name, const char *args,
@@ -40 +42 @@
-@@ -303,6 +302,7 @@ insert_vdev(const char *name, const char *args,
+@@ -322,6 +321,7 @@ insert_vdev(const char *name, const char *args,
More information about the stable
mailing list