diff options
author | Mark Brown <broonie@kernel.org> | 2014-11-03 15:13:33 +0000 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2014-11-03 15:13:33 +0000 |
commit | ebc01f593b58e1896150fc2e3cbdd0116323c52c (patch) | |
tree | 23e905a3fdbee3fc8a66ef760b9ed5ef5455e9dd /drivers/usb/gadget/function/f_hid.c | |
parent | 3f7256fe5fc64132a2dd19695255c990aa2188cf (diff) | |
parent | 0df1f2487d2f0d04703f142813d53615d62a1da4 (diff) |
Merge tag 'v3.18-rc3' into asoc-sgtl5000
Linux 3.18-rc3
Diffstat (limited to 'drivers/usb/gadget/function/f_hid.c')
-rw-r--r-- | drivers/usb/gadget/function/f_hid.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/usb/gadget/function/f_hid.c b/drivers/usb/gadget/function/f_hid.c index a95290a1289f..59ab62c92b66 100644 --- a/drivers/usb/gadget/function/f_hid.c +++ b/drivers/usb/gadget/function/f_hid.c @@ -621,12 +621,14 @@ static int __init hidg_bind(struct usb_configuration *c, struct usb_function *f) dev = MKDEV(major, hidg->minor); status = cdev_add(&hidg->cdev, dev, 1); if (status) - goto fail; + goto fail_free_descs; device_create(hidg_class, NULL, dev, NULL, "%s%d", "hidg", hidg->minor); return 0; +fail_free_descs: + usb_free_all_descriptors(f); fail: ERROR(f->config->cdev, "hidg_bind FAILED\n"); if (hidg->req != NULL) { @@ -635,7 +637,6 @@ fail: usb_ep_free_request(hidg->in_ep, hidg->req); } - usb_free_all_descriptors(f); return status; } |