diff options
author | Andrzej Pietrasiewicz <andrzej.p@samsung.com> | 2015-07-03 14:02:29 +0200 |
---|---|---|
committer | Badhri Jagan Sridharan <Badhri@google.com> | 2015-09-04 12:25:03 -0700 |
commit | f803e26b70f4539040503994a160e44238ec229f (patch) | |
tree | c34dc9ac40eea82a059ad51e360bf87daf4b2e17 | |
parent | 61ef7b1f6326cffc724cd59934fc16be2bce7e68 (diff) |
usb: gadget: f_midi: fix error recovery path
In case kstrdup() fails the resources to release are
midi->in_port[] and midi. No cards have been registered,
so no need to unregister any.
BACKPORT FROM MAINLINE KERNEL
Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Change-Id: Idf14ca5aded888fe7c56d8b06763b009800827f5
-rw-r--r-- | drivers/usb/gadget/function/f_midi.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/usb/gadget/function/f_midi.c b/drivers/usb/gadget/function/f_midi.c index 6316aa5b1c49..ad50a67c1465 100644 --- a/drivers/usb/gadget/function/f_midi.c +++ b/drivers/usb/gadget/function/f_midi.c @@ -1145,7 +1145,7 @@ static struct usb_function *f_midi_alloc(struct usb_function_instance *fi) if (opts->id && !midi->id) { status = -ENOMEM; mutex_unlock(&opts->lock); - goto kstrdup_fail; + goto setup_fail; } midi->in_ports = opts->in_ports; midi->out_ports = opts->out_ports; @@ -1164,8 +1164,6 @@ static struct usb_function *f_midi_alloc(struct usb_function_instance *fi) return &midi->func; -kstrdup_fail: - f_midi_unregister_card(midi); setup_fail: for (--i; i >= 0; i--) kfree(midi->in_port[i]); |