On Mon, 23 Mar 2026 11:53:00 +0100 David Marchand <[email protected]> wrote:
> All buses (thankfully) implement the same logic when it comes to > selecting the devices to probe based on -a/-b options. > As we want to adjust how devices are selected, provide a common helper > in EAL and use it in the buses. > > Signed-off-by: David Marchand <[email protected]> > Acked-by: Bruce Richardson <[email protected]> > Reviewed-by: Robin Jarry <[email protected]> > --- > Changes since RFC v2: > - changed API to query about a device name and hide the devargs meaning > in the common code, AI review found some issues in this one: **Error**: In `drivers/dma/idxd/idxd_bus.c`, the refactored `is_for_this_process_use` has a logic error. The old code could set `retval` to 0 when a device was blocked: ```c /* Old - retval could be set to 0 */ if (dsa_bus.bus.conf.scan_mode == RTE_BUS_SCAN_ALLOWLIST) retval = rte_bus_find_devargs(...) != NULL; else retval = rte_bus_find_devargs(...) == NULL; ``` The new code only ever sets `retval = 1`, never clearing it: ```c /* New - retval is never set to 0 */ if (retval && !rte_bus_is_ignored_device(&dsa_bus.bus, dev->device.name)) retval = 1; ``` If a device should be ignored (blocked or not on the allow list), `rte_bus_is_ignored_device` returns true, the condition is false, and `retval` stays 1 from the earlier name-matching check. Blocked devices will incorrectly pass through. Suggested fix: ```c if (retval) retval = !rte_bus_is_ignored_device(&dsa_bus.bus, dev->device.name); ```

