[PATCH 3/3] usb: gadget: f_midi: check for error on usb_ep_queue

eu
2015-09-18T17:30:43Z

From: "Felipe F. Tonello" <eu@felipetonello.com>

f_midi is not checking weather the is an error on usb_ep_queue
request, ignoring potential problems, such as memory leaks.

Signed-off-by: Felipe F. Tonello <eu@felipetonello.com>
---

Changes for v2:
- Update code style.

drivers/usb/gadget/function/f_midi.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/usb/gadget/function/f_midi.c b/drivers/usb/gadget/function/f_midi.c
index ad50a67..c04133422 100644
--- a/drivers/usb/gadget/function/f_midi.c
+++ b/drivers/usb/gadget/function/f_midi.c
@@ -543,10 +543,16 @@ static void f_midi_transmit(struct f_midi *midi, struct usb_request *req)
}
}

- if (req->length > 0)
- usb_ep_queue(ep, req, GFP_ATOMIC);
- else
+ if (req->length > 0) {
+ int err;
+
+ err = usb_ep_queue(ep, req, GFP_ATOMIC);
+ if (err < 0)
+ ERROR(midi, "%s queue req: %d\n",
+ midi->out_ep->name, err);
+ } else {
free_ep_req(ep, req);
+ }
}

static void f_midi_in_tasklet(unsigned long data)
--
2.1.4