On Tue, Jun 08, 2021 at 09:35:17AM +0200, Greg Kroah-Hartman wrote: > 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 > > +++ 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", > > Why is lkml not cc:ed on driver core changes like get_maintainer.pl will > say? Sorry, this is my error, it was intended to be cc'd but scripting seems to have malfunctioned in this case. It is what HCH observed too. Jason