On Wed, 18 Feb 2026 at 17:06, Maxime Leroy <[email protected]> wrote: > > When a device is hotplugged via rte_dev_probe(), the EAL adds the > devargs to its global list before calling the bus plug callback. > However, fslmc_bus_plug() never refreshes dev->device.devargs from > the EAL list -- it was only set during the initial bus scan. > > As a result, PMD-specific devargs (e.g. drv_no_taildrop) passed > through rte_dev_probe() are silently ignored by the driver. > > Refresh devargs from the EAL list in fslmc_bus_plug() before probing, > the same way it is done during the initial bus scan. > > Fixes: b5721f271cbf ("bus/fslmc: support DPNI hotplug") > Signed-off-by: Maxime Leroy <[email protected]> > --- > drivers/bus/fslmc/fslmc_bus.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/bus/fslmc/fslmc_bus.c b/drivers/bus/fslmc/fslmc_bus.c > index abdb0ad50d..a539753649 100644 > --- a/drivers/bus/fslmc/fslmc_bus.c > +++ b/drivers/bus/fslmc/fslmc_bus.c > @@ -596,6 +596,11 @@ fslmc_bus_plug(struct rte_device *rte_dev) > struct rte_dpaa2_device, device); > struct rte_dpaa2_driver *drv; > > + /* Refresh devargs from the EAL devargs list, as they may > + * have been added after the initial bus scan (e.g. hotplug). > + */ > + dev->device.devargs = fslmc_devargs_lookup(dev); > + > TAILQ_FOREACH(drv, &rte_fslmc_bus.driver_list, next) { > ret = rte_fslmc_match(drv, dev); > if (ret)
This looks like a strange location for a fix. The hotplug path calls this bus ->scan() which is supposed to refresh the devices. Could you double check if something is wrong on this side? -- David Marchand

