devargs: fix list entry update

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>
This commit is contained in:
Xueming Li 2021-04-17 23:15:32 +08:00 committed by Thomas Monjalon
parent 22677b0eef
commit e4b5b2ba9c

View 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 */