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

Reply via email to