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. Lothar Waßmann -- ___________________________________________________________ Ka-Ro electronics GmbH | Pascalstraße 22 | D - 52076 Aachen Phone: +49 2408 1402-0 | Fax: +49 2408 1402-10 Geschäftsführer: Matthias Kaussen Handelsregistereintrag: Amtsgericht Aachen, HRB 4996 www.karo-electronics.de | info@xxxxxxxxxxxxxxxxxxx ___________________________________________________________ -- 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