Re: [PATCH 4/4] usb: chipidea: Prevent endless loop registering platform_devices when ci_hdrc_probe() fails.

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

 



On Thu, Aug 01, 2013 at 10:43:52AM +0200, Lothar Waßmann wrote:
> Hi,
> 
> Peter Chen writes:
> > On Wed, Jul 31, 2013 at 04:21:16PM +0200, Lothar Waßmann wrote:
> > > commit 40dcd0e introduced the following code to the ci_hdrc_probe()
> > > function:
> > > 
> > > +       if (!dev->of_node && dev->parent)
> > > +               dev->of_node = dev->parent->of_node;
> > > 
> > > This inadvertently associates the ci_hdrc device with the ci_hdrc_imx
> > > driver (which created the ci_hdrc device in the first place).
> > > 
> > > This results in ci_hdrc_imx_probe() being run for the ci_hdrc device
> > > if ci_hdrc_probe() fails for some reason.
> > > ci_hdrc_imx_probe() will happily create a new ci_hdrc platform_device
> > > whose probing will likewise fail and trigger a new invocation of
> > > ci_hdrc_imx_probe() ... ad nauseam.
> > > 
> > 
> > Sorry, I can't understand how it happenes?
> > 
> If ci_hdrc_probe() fails, the driver core will look for other drivers
> that might be able to handle the device. Since the of_node has been
> copied from the parent device "imx_usb" the driver responsible for
> the DT match of of_node (ci_hdrc_imx) will be called.
> 

Good fix.

Reviewed-and-Tested-by: Peter Chen <peter.chen@xxxxxxxxxxxxx>

-- 

Best Regards,
Peter Chen

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux