This fix a memory leak that will occur in this case.

Signed-off-by: Felipe F. Tonello <e...@felipetonello.com>
---
 drivers/usb/gadget/function/f_midi.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/gadget/function/f_midi.c 
b/drivers/usb/gadget/function/f_midi.c
index e92aff5..e6a114b 100644
--- a/drivers/usb/gadget/function/f_midi.c
+++ b/drivers/usb/gadget/function/f_midi.c
@@ -550,9 +550,11 @@ static void f_midi_transmit(struct f_midi *midi, struct 
usb_request *req)
                int err;
 
                err = usb_ep_queue(ep, req, GFP_ATOMIC);
-               if (err < 0)
+               if (err < 0) {
                        ERROR(midi, "%s queue req: %d\n",
                              midi->in_ep->name, err);
+                       free_ep_req(ep, req);
+               }
        } else {
                free_ep_req(ep, req);
        }
-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to