summaryrefslogtreecommitdiff
path: root/drivers/usb/gadget/function/f_midi.c
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2015-12-31 16:58:47 +0100
committerArnd Bergmann <arnd@arndb.de>2015-12-31 17:36:40 +0100
commit2bc75dbf14f8f3db56c1f546e65a90b5286614ad (patch)
tree8dd5ea0e0f2241b624f975b8416d0654d21c4383 /drivers/usb/gadget/function/f_midi.c
parented1c7848dcadba2be07057e6810eb5825d0080d7 (diff)
parentf74875dc36135ebae82a8e005f4b7f52289d2c40 (diff)
Merge branch 'depends/usb-fixes' into next/soc
This branch was merged into v4.4-rc5 and is needed for the bcm2836 support. Merging it first to avoid large-scale backmerge of rc5. * depends/usb-fixes: usb: dwc2: fix kernel oops during driver probe usb: phy: mxs: add "fsl,imx6ul-usbphy" compatible string usb: gadget: f_midi: fix leak on failed to enqueue out requests usb: gadget: f_midi: Transmit data only when IN ep is enabled usb: dwc2: make otg clk optional usb: dwc2: Return errors from PHY usb: dwc2: Make PHY optional usb: renesas_usbhs: gadget: Fix NULL pointer dereference in usbhsg_ep_dequeue() usb: kconfig: fix warning of select USB_OTG usb: gadget: pxa27x: fix suspend callback usb: gadget: functionfs: fix missing access_ok checks usb: musb: USB_TI_CPPI41_DMA requires dmaengine support
Diffstat (limited to 'drivers/usb/gadget/function/f_midi.c')
-rw-r--r--drivers/usb/gadget/function/f_midi.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/usb/gadget/function/f_midi.c b/drivers/usb/gadget/function/f_midi.c
index 42acb45e1ab4..898a570319f1 100644
--- a/drivers/usb/gadget/function/f_midi.c
+++ b/drivers/usb/gadget/function/f_midi.c
@@ -370,6 +370,7 @@ static int f_midi_set_alt(struct usb_function *f, unsigned intf, unsigned alt)
if (err) {
ERROR(midi, "%s queue req: %d\n",
midi->out_ep->name, err);
+ free_ep_req(midi->out_ep, req);
}
}
@@ -545,7 +546,7 @@ static void f_midi_transmit(struct f_midi *midi, struct usb_request *req)
}
}
- if (req->length > 0) {
+ if (req->length > 0 && ep->enabled) {
int err;
err = usb_ep_queue(ep, req, GFP_ATOMIC);