]> git.droids-corp.org - dpdk.git/commitdiff
devargs: fix list entry update
authorXueming Li <xuemingl@nvidia.com>
Sat, 17 Apr 2021 15:15:32 +0000 (23:15 +0800)
committerThomas Monjalon <thomas@monjalon.net>
Mon, 19 Apr 2021 16:13:02 +0000 (18:13 +0200)
When inserting devargs that is already in list,
existing one was reset and replaced completely by new one,
the entry info was lost during copy.

This patch backups entry info before copy.

Fixes: 64051bb1f144 ("devargs: unify scratch buffer storage")
Reported-by: Jim Harris <james.r.harris@intel.com>
Signed-off-by: Xueming Li <xuemingl@nvidia.com>
lib/librte_eal/common/eal_common_devargs.c

index 4b5be80328e49f005b1dde3356941164afb6e0f6..b31ac879a974da05525149a5ee315055e8a3fda2 100644 (file)
@@ -298,6 +298,7 @@ rte_devargs_insert(struct rte_devargs **da)
                if (strcmp(listed_da->bus->name, (*da)->bus->name) == 0 &&
                                strcmp(listed_da->name, (*da)->name) == 0) {
                        /* device already in devargs list, must be updated */
+                       (*da)->next = listed_da->next;
                        rte_devargs_reset(listed_da);
                        *listed_da = **da;
                        /* replace provided devargs with found one */