From: Clemens Ladisch <clemens@ladisch.de>
To: Felipe Tonello <eu@felipetonello.com>,
USB list <linux-usb@vger.kernel.org>
Cc: Kernel development list <linux-kernel@vger.kernel.org>,
Peter Chen <Peter.Chen@freescale.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Felipe Balbi <balbi@ti.com>,
Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Subject: Re: [PATCH v3 1/4] usb: gadget: f_midi: free usb request when done
Date: Fri, 9 Oct 2015 11:23:37 +0200 [thread overview]
Message-ID: <56178799.9000409@ladisch.de> (raw)
In-Reply-To: <CAGrhNMw1a99LWDhVpt-a77WGpS=aHGEuMZ3ZTdzij5LZtF5fvg@mail.gmail.com>
Felipe Tonello wrote:
> req->actual == req->length means that there is no data left to enqueue,
This condition is not checked in the patch.
> so free the request.
>
> Signed-off-by: Felipe F. Tonello <eu@felipetonello.com>
> ---
> drivers/usb/gadget/function/f_midi.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
> diff --git a/drivers/usb/gadget/function/f_midi.c b/drivers/usb/gadget/function/f_midi.c
> index edb84ca..93212ca 100644
> --- a/drivers/usb/gadget/function/f_midi.c
> +++ b/drivers/usb/gadget/function/f_midi.c
> @@ -256,9 +256,8 @@ f_midi_complete(struct usb_ep *ep, struct usb_request *req)
> /* We received stuff. req is queued again, below */
> f_midi_handle_out_data(ep, req);
> } else if (ep == midi->in_ep) {
> - /* Our transmit completed. See if there's more to go.
> - * f_midi_transmit eats req, don't queue it again. */
> - f_midi_transmit(midi, req);
> + /* Our transmit completed. Don't queue it again. */
> + free_ep_req(ep, req);
> return;
> }
> break;
The ALSA framework will give you a notification _once_. If the
resulting data is larger than midi->buflen, then you have to continue
sending packets. This is exactly what the call to f_midi_transmit()
does.
(To decrease latency, it might be a good idea to queue multiple requests,
but you wouldn't want to continue piling up requests if the host isn't
listening. sound/usb/midi.c just allocates a fixed number of requests,
and always reuses them.)
Regards,
Clemens
next prev parent reply other threads:[~2015-10-09 9:23 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-29 12:01 [PATCH v3 0/4] USB MIDI Gadget bug fixes and improvements Felipe F. Tonello
2015-09-29 12:01 ` [PATCH v3 1/4] usb: gadget: f_midi: free usb request when done Felipe F. Tonello
2015-09-29 12:01 ` [PATCH v3 2/4] usb: gadget: f_midi: free request when usb_ep_queue fails Felipe F. Tonello
2015-09-29 12:01 ` [PATCH v3 3/4] usb: gadget: f_midi: Transmit data only when IN ep is enabled Felipe F. Tonello
2015-09-29 12:01 ` [PATCH v3 4/4] usb: gadget: f_midi: remove duplicated code Felipe F. Tonello
2015-10-08 8:36 ` [PATCH v3 0/4] USB MIDI Gadget bug fixes and improvements Felipe Tonello
2015-10-09 9:23 ` Clemens Ladisch [this message]
2015-10-09 20:55 ` [PATCH v3 1/4] usb: gadget: f_midi: free usb request when done Felipe Balbi
2015-10-11 19:08 ` Clemens Ladisch
2015-10-12 10:11 ` Felipe Tonello
2015-10-12 9:46 ` Felipe Tonello
2015-10-12 10:16 ` Clemens Ladisch
2015-10-12 11:58 ` Felipe Tonello
2015-10-12 12:10 ` Clemens Ladisch
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56178799.9000409@ladisch.de \
--to=clemens@ladisch.de \
--cc=Peter.Chen@freescale.com \
--cc=andrzej.p@samsung.com \
--cc=balbi@ti.com \
--cc=eu@felipetonello.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.