summaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorOliver Neukum <oneukum@suse.com>2016-07-14 15:41:32 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-07-18 17:46:57 +0200
commit6dd3587f515ec4b1b8bcaaeb628ed1921eeed2ea (patch)
tree7584e93ddb0ebd4a49a0db45cd7bfa3ddb749cee /drivers/usb
parentcdc-acm: use the common parser (diff)
downloadlinux-6dd3587f515ec4b1b8bcaaeb628ed1921eeed2ea.tar.xz
linux-6dd3587f515ec4b1b8bcaaeb628ed1921eeed2ea.zip
cdc-acm: cleanup error handling
A small update to unify error handling during probe(). Signed-off-by: Oliver Neukum <ONeukum@suse.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/class/cdc-acm.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
index 561baed7ba01..2e5dea866b6f 100644
--- a/drivers/usb/class/cdc-acm.c
+++ b/drivers/usb/class/cdc-acm.c
@@ -1328,11 +1328,8 @@ made_compressed_probe:
goto alloc_fail;
minor = acm_alloc_minor(acm);
- if (minor < 0) {
- dev_err(&intf->dev, "no more free acm devices\n");
- kfree(acm);
- return -ENODEV;
- }
+ if (minor < 0)
+ goto alloc_fail1;
ctrlsize = usb_endpoint_maxp(epctrl);
readsize = usb_endpoint_maxp(epread) *
@@ -1523,6 +1520,7 @@ alloc_fail4:
usb_free_coherent(usb_dev, ctrlsize, acm->ctrl_buffer, acm->ctrl_dma);
alloc_fail2:
acm_release_minor(acm);
+alloc_fail1:
kfree(acm);
alloc_fail:
return rv;