Message ID | 1372257456-19212-1-git-send-email-andriy.shevchenko@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Jun 26, 2013 at 05:37:36PM +0300, Andy Shevchenko wrote: > From: Dan Carpenter <dan.carpenter@oracle.com> > > We have reorganized the error handling into a simpler and more canonical > format. > > Additionally we removed extra empty lines, switched to devm_kzalloc(), and > substitute 'minor' by 'ret' in the igorplugusb_remote_probe() function. > > Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> I don't want credit for this, because I didn't do the work. Signed-off-by is a legal thing like signing a document... But I have reviewed it and it looks good. Acked-by: Dan Carpenter <dan.carpenter@oracle.com> regards, dan carpenter -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, 2013-06-26 at 18:10 +0300, Dan Carpenter wrote: > On Wed, Jun 26, 2013 at 05:37:36PM +0300, Andy Shevchenko wrote: > > From: Dan Carpenter <dan.carpenter@oracle.com> > > > > We have reorganized the error handling into a simpler and more canonical > > format. > > > > Additionally we removed extra empty lines, switched to devm_kzalloc(), and > > substitute 'minor' by 'ret' in the igorplugusb_remote_probe() function. > > > > Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > > I don't want credit for this, because I didn't do the work. > Signed-off-by is a legal thing like signing a document... I took your patch and modified it, so, you have done some work too. But I could resend a version with my authorship. > But I > have reviewed it and it looks good. > > Acked-by: Dan Carpenter <dan.carpenter@oracle.com> > > regards, > dan carpenter >
On Wed, Jun 26, 2013 at 06:29:12PM +0300, Andy Shevchenko wrote: > On Wed, 2013-06-26 at 18:10 +0300, Dan Carpenter wrote: > > On Wed, Jun 26, 2013 at 05:37:36PM +0300, Andy Shevchenko wrote: > > > From: Dan Carpenter <dan.carpenter@oracle.com> > > > > > > We have reorganized the error handling into a simpler and more canonical > > > format. > > > > > > Additionally we removed extra empty lines, switched to devm_kzalloc(), and > > > substitute 'minor' by 'ret' in the igorplugusb_remote_probe() function. > > > > > > Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> > > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > > > > I don't want credit for this, because I didn't do the work. > > Signed-off-by is a legal thing like signing a document... > > I took your patch and modified it, so, you have done some work too. > But I could resend a version with my authorship. I don't think any of my work survived the re-write, but I'm happy enough to take credit for other people's work. :) Don't bother resending. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> regards, dan carpenter -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/staging/media/lirc/lirc_igorplugusb.c b/drivers/staging/media/lirc/lirc_igorplugusb.c index 2faa391..28c8b0b 100644 --- a/drivers/staging/media/lirc/lirc_igorplugusb.c +++ b/drivers/staging/media/lirc/lirc_igorplugusb.c @@ -240,10 +240,6 @@ static int unregister_from_lirc(struct igorplug *ir) dprintk(DRIVER_NAME "[%d]: calling lirc_unregister_driver\n", devnum); lirc_unregister_driver(d->minor); - kfree(d); - ir->d = NULL; - kfree(ir); - return devnum; } @@ -377,20 +373,16 @@ static int igorplugusb_remote_poll(void *data, struct lirc_buffer *buf) return -ENODATA; } - - static int igorplugusb_remote_probe(struct usb_interface *intf, const struct usb_device_id *id) { - struct usb_device *dev = NULL; + struct usb_device *dev; struct usb_host_interface *idesc = NULL; struct usb_endpoint_descriptor *ep; struct igorplug *ir = NULL; struct lirc_driver *driver = NULL; int devnum, pipe, maxp; - int minor = 0; char buf[63], name[128] = ""; - int mem_failure = 0; int ret; dprintk(DRIVER_NAME ": usb probe called.\n"); @@ -416,24 +408,18 @@ static int igorplugusb_remote_probe(struct usb_interface *intf, dprintk(DRIVER_NAME "[%d]: bytes_in_key=%zu maxp=%d\n", devnum, CODE_LENGTH, maxp); - mem_failure = 0; - ir = kzalloc(sizeof(struct igorplug), GFP_KERNEL); - if (!ir) { - mem_failure = 1; - goto mem_failure_switch; - } - driver = kzalloc(sizeof(struct lirc_driver), GFP_KERNEL); - if (!driver) { - mem_failure = 2; - goto mem_failure_switch; - } + ir = devm_kzalloc(&intf->dev, sizeof(*ir), GFP_KERNEL); + if (!ir) + return -ENOMEM; + + driver = devm_kzalloc(&intf->dev, sizeof(*driver), GFP_KERNEL); + if (!driver) + return -ENOMEM; ir->buf_in = usb_alloc_coherent(dev, DEVICE_BUFLEN + DEVICE_HEADERLEN, GFP_ATOMIC, &ir->dma_in); - if (!ir->buf_in) { - mem_failure = 3; - goto mem_failure_switch; - } + if (!ir->buf_in) + return -ENOMEM; strcpy(driver->name, DRIVER_NAME " "); driver->minor = -1; @@ -449,27 +435,14 @@ static int igorplugusb_remote_probe(struct usb_interface *intf, driver->dev = &intf->dev; driver->owner = THIS_MODULE; - minor = lirc_register_driver(driver); - if (minor < 0) - mem_failure = 9; - -mem_failure_switch: - - switch (mem_failure) { - case 9: + ret = lirc_register_driver(driver); + if (ret < 0) { usb_free_coherent(dev, DEVICE_BUFLEN + DEVICE_HEADERLEN, ir->buf_in, ir->dma_in); - case 3: - kfree(driver); - case 2: - kfree(ir); - case 1: - printk(DRIVER_NAME "[%d]: out of memory (code=%d)\n", - devnum, mem_failure); - return -ENOMEM; + return ret; } - driver->minor = minor; + driver->minor = ret; ir->d = driver; ir->devnum = devnum; ir->usbdev = dev; @@ -502,7 +475,6 @@ mem_failure_switch: return 0; } - static void igorplugusb_remote_disconnect(struct usb_interface *intf) { struct usb_device *usbdev = interface_to_usbdev(intf);