Re: [PATCH v3 5/7] bus: factorize devargs lookup

Thomas Monjalon
2026-04-13T19:18:19Z

07/04/2026 13:52, David Marchand:
> Each bus reimplements some similar devargs lookup code.
>
> The differences are in how some bus (PCI, VMBUS etc...) normalizes the
> device names. We can't use the .parse existing handler from outside the
> bus code itself, as the size of the bus specific device location address
> is unknown.
> Introduce a bus specific helper to compare two device names and
> hide this ugly detail.

I agree with introducing a new bus helper.

[...]
> + /* The name in the devargs is usually prefixed with <bus>: */

Is it usually prefixed or always prefixed?

> + if (strncmp(devargs_name, bus_name, strlen(bus_name)) == 0)
> + devargs_name += strlen(bus_name) + 1;

If I understand well, if it is prefixed with bus name,
it is assumed that a colon character will follow.

[...]
> +/**
> + * Bus specific device name comparison function.
> + * Bus can normalize the names of devices using an internal representation.
> + * This helper makes it possible to check whether two names refer to the same device.
> + *
> + * @param[in] name1
> + * device name
> + * @param[in] name2
> + * device name
> + *
> + * @return
> + * 0 if the two names refer to the same device.
> + * !0 otherwise.
> + */
> +typedef int (*rte_bus_devname_compare_t)(const char *name1, const char *name2);

The helper compares internal representation of the device, not the names.
The function should be rte_bus_dev_compare_t.