On Mon, Jun 07, 2021 at 09:55:43PM -0300, Jason Gunthorpe wrote: > Once a driver has been matched and probe() returns with -EPROBE_DEFER the > device is added to a deferred list and will be retried later. > > At this point __device_attach_driver() should stop trying other drivers as > we have "matched" this driver and already scheduled another probe to > happen later. > > Return the -EPROBE_DEFER from really_probe() instead of squashing it to > zero. This is similar to the code at the top of the function which > directly returns -EPROBE_DEFER. > > It is not really a bug as, AFAIK, we don't actually have cases where > multiple drivers can bind. > > Signed-off-by: Jason Gunthorpe <jgg@xxxxxxxxxx> > --- > drivers/base/dd.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/base/dd.c b/drivers/base/dd.c > index ecd7cf848daff7..9d79a139290271 100644 > --- a/drivers/base/dd.c > +++ b/drivers/base/dd.c > @@ -656,7 +656,7 @@ static int really_probe(struct device *dev, struct device_driver *drv) > /* Driver requested deferred probing */ > dev_dbg(dev, "Driver %s requests probe deferral\n", drv->name); > driver_deferred_probe_add_trigger(dev, local_trigger_count); > - break; > + goto done; > case -ENODEV: > case -ENXIO: > pr_debug("%s: probe of %s rejects match %d\n", > -- > 2.31.1 > Why is lkml not cc:ed on driver core changes like get_maintainer.pl will say? thanks, greg k-h