On Sat, 2 Oct 2010, Alan Stern wrote: > On Sat, 2 Oct 2010, Rahul Ruikar wrote: > > > In function dummy_udc_probe() > > call put_device() when device_register() fails. > > > > Signed-off-by: Rahul Ruikar <rahul.ruikar@xxxxxxxxx> > > --- > > drivers/usb/gadget/dummy_hcd.c | 4 +++- > > 1 files changed, 3 insertions(+), 1 deletions(-) > > > > diff --git a/drivers/usb/gadget/dummy_hcd.c b/drivers/usb/gadget/dummy_hcd.c > > index dc65462..2548091 100644 > > --- a/drivers/usb/gadget/dummy_hcd.c > > +++ b/drivers/usb/gadget/dummy_hcd.c > > @@ -885,8 +885,10 @@ static int dummy_udc_probe (struct platform_device *pdev) > > dum->gadget.dev.parent = &pdev->dev; > > dum->gadget.dev.release = dummy_gadget_release; > > rc = device_register (&dum->gadget.dev); > > - if (rc < 0) > > + if (rc < 0) { > > + put_device(&dum->gadget.dev); > > return rc; > > + } > > > > usb_get_hcd (dummy_to_hcd (dum)); > > Acked-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> I take this back. The call usb_get_hcd needs to be moved up before the device_register (maybe to the start of the function.) Otherwise dummy_gadget_release would do an unbalanced usb_put_hcd. Alan Stern -- 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