Messages in this thread Patch in this message | | | Subject | [PATCH 3/9] [media] tm6000: Use common error handling code in tm6000_usb_probe() | From | SF Markus Elfring <> | Date | Fri, 15 Sep 2017 09:50:43 +0200 |
| |
From: Markus Elfring <elfring@users.sourceforge.net> Date: Thu, 14 Sep 2017 16:00:47 +0200
Add a jump target so that a bit of exception handling can be better reused at the end of this function.
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> --- drivers/media/usb/tm6000/tm6000-cards.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/drivers/media/usb/tm6000/tm6000-cards.c b/drivers/media/usb/tm6000/tm6000-cards.c index ef37fb1f05e4..e18632056976 100644 --- a/drivers/media/usb/tm6000/tm6000-cards.c +++ b/drivers/media/usb/tm6000/tm6000-cards.c @@ -1200,15 +1200,15 @@ static int tm6000_usb_probe(struct usb_interface *interface, nr = find_first_zero_bit(&tm6000_devused, TM6000_MAXBOARDS); if (nr >= TM6000_MAXBOARDS) { printk(KERN_ERR "tm6000: Supports only %i tm60xx boards.\n", TM6000_MAXBOARDS); - usb_put_dev(usbdev); - return -ENOMEM; + rc = -ENOMEM; + goto put_device; } /* Create and initialize dev struct */ dev = kzalloc(sizeof(*dev), GFP_KERNEL); if (!dev) { - usb_put_dev(usbdev); - return -ENOMEM; + rc = -ENOMEM; + goto put_device; } spin_lock_init(&dev->slock); mutex_init(&dev->usb_lock); @@ -1331,9 +1331,10 @@ static int tm6000_usb_probe(struct usb_interface *interface, printk(KERN_ERR "tm6000: Error %d while registering\n", rc); clear_bit(nr, &tm6000_devused); - usb_put_dev(usbdev); kfree(dev); +put_device: + usb_put_dev(usbdev); return rc; } -- 2.14.1
| |