patch 'bus/vdev: fix device reinitialization' has been queued to stable release 22.11.6
luca.boccassi at gmail.com
luca.boccassi at gmail.com
Wed Jul 24 13:33:10 CEST 2024
Hi,
FYI, your patch has been queued to stable release 22.11.6
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 07/26/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://github.com/bluca/dpdk-stable
This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/3682872558ec345a9762218eb8f117886bddaab4
Thanks.
Luca Boccassi
---
>From 3682872558ec345a9762218eb8f117886bddaab4 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
[ 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 38d05a9fe9..ec7abe7cda 100644
--- a/drivers/bus/vdev/vdev.c
+++ b/drivers/bus/vdev/vdev.c
@@ -288,7 +288,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)) {
/*
@@ -303,6 +302,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.39.2
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2024-07-24 12:29:23.053065682 +0100
+++ 0032-bus-vdev-fix-device-reinitialization.patch 2024-07-24 12:29:20.803026775 +0100
@@ -1 +1 @@
-From 1bd1ab6fd010837773473d821f9284369b37264c Mon Sep 17 00:00:00 2001
+From 3682872558ec345a9762218eb8f117886bddaab4 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 1bd1ab6fd010837773473d821f9284369b37264c ]
+
@@ -20 +21,0 @@
-Cc: stable at dpdk.org
More information about the stable
mailing list