devargs: backup entry when inserting duplicated item
Checks
Commit Message
When insert devargs that already in list, existing one was reset and
replaced completely by new once, the entry info was lost during copy.
This patch backups entry info before copy.
Fixes: 64051bb1f144 ("devargs: unify scratch buffer storage")
Signed-off-by: Xueming Li <xuemingl@nvidia.com>
---
lib/librte_eal/common/eal_common_devargs.c | 1 +
1 file changed, 1 insertion(+)
Comments
17/04/2021 17:15, Xueming Li:
> When insert devargs that already in list, existing one was reset and
> replaced completely by new once, 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>
Applied, thanks
@@ -295,6 +295,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 */