Re: [PATCH 01/10] driver core: Do not continue searching for drivers if deferred probe is used

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux