will resubmit this patch alongwith other patches. Thanks - Rahul Ruikar On 4 October 2010 16:14, Sergei Shtylyov <sshtylyov@xxxxxxxxxx> wrote: > Hello. > > On 03-10-2010 17:49, Rahul Ruikar wrote: > >> - call device_unregister() only when device_register() is sucess. > > s/is sucess/succeeds/ > >> - call put_device() when device_register() fails. > >> Signed-off-by: Rahul Ruikar<rahul.ruikar@xxxxxxxxx> >> --- >> drivers/usb/gadget/langwell_udc.c | 18 ++++++++++++++---- >> drivers/usb/gadget/langwell_udc.h | 4 +++- >> 2 files changed, 17 insertions(+), 5 deletions(-) > >> diff --git a/drivers/usb/gadget/langwell_udc.c >> b/drivers/usb/gadget/langwell_udc.c >> index c2d2a20..2b5ae16 100644 >> --- a/drivers/usb/gadget/langwell_udc.c >> +++ b/drivers/usb/gadget/langwell_udc.c >> @@ -2952,8 +2952,13 @@ static void langwell_udc_remove(struct pci_dev >> *pdev) >> INFO(dev, "unbind\n"); >> DBG(dev, "<--- %s()\n", __func__); >> >> - device_unregister(&dev->gadget.dev); >> - device_remove_file(&pdev->dev,&dev_attr_langwell_udc); >> + if (dev->dev_reg_status == 2) >> + device_unregister(&dev->gadget.dev); >> + else if (dev->dev_reg_status == 1) >> + put_device(&dev->gadget.dev); >> + >> + if (dev->dev_create_file) >> + device_remove_file(&pdev->dev,&dev_attr_langwell_udc); >> >> #ifndef OTG_TRANSCEIVER >> pci_set_drvdata(pdev, NULL); >> @@ -3190,12 +3195,17 @@ static int langwell_udc_probe(struct pci_dev >> *pdev, >> the_controller = dev; >> >> retval = device_register(&dev->gadget.dev); >> - if (retval) >> + if (retval) { >> + dev_reg_status = 1; > > Did you mean 'dev->dev_reg_status'? > >> goto error; >> + } >> + dev_reg_status = 2; > > Same question. > >> >> retval = device_create_file(&pdev->dev,&dev_attr_langwell_udc); >> - if (retval) >> + if (retval) { >> + dev_create_file = 1; > > Did you mean 'dev->dev_create_file'? > > WBR, Sergei > -- 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