From: Robert Baldyga <r.baldyga@samsung.com>
To: Felipe Ferreri Tonello <eu@felipetonello.com>, linux-usb@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, Felipe Balbi <balbi@ti.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Clemens Ladisch <clemens@ladisch.de>
Subject: Re: [PATCH v5 4/7] usb: gadget: f_midi: fix leak on failed to enqueue out requests
Date: Mon, 16 Nov 2015 12:43:36 +0100 [thread overview]
Message-ID: <5649C168.2030805@samsung.com> (raw)
In-Reply-To: <5649B92B.2010202@felipetonello.com>
On 11/16/2015 12:08 PM, Felipe Ferreri Tonello wrote:
> Hi Robert,
>
> On 13/11/15 08:31, Robert Baldyga wrote:
>> Hi Felipe,
>>
>> On 11/10/2015 06:52 PM, Felipe F. Tonello wrote:
>>> This patch fixes a memory leak that occurs when an endpoint fails to enqueue
>>> the request. If that happens the complete function will never be called, thus
>>> never freeing the request.
>>>
>>> Signed-off-by: Felipe F. Tonello <eu@felipetonello.com>
>>> ---
>>> drivers/usb/gadget/function/f_midi.c | 1 +
>>> 1 file changed, 1 insertion(+)
>>>
>>> diff --git a/drivers/usb/gadget/function/f_midi.c b/drivers/usb/gadget/function/f_midi.c
>>> index f36db2d..76ea53c 100644
>>> --- a/drivers/usb/gadget/function/f_midi.c
>>> +++ b/drivers/usb/gadget/function/f_midi.c
>>> @@ -345,6 +345,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);
>>> }
>>> }
>>>
>>>
>>
>> There is one more thing I haven't noticed before. We can have situation
>> when all requests were allocated successfully, but their allocation
>> failed. What we get then is set_alt() returning 0, while no request is
>> allocated, hence the function is, in fact, inactive.
>
> Right. So in this case should we return some error? We can restrict the
> function to work iff allocates the 'qlen' number of allocations,
> otherwise returns an error and frees all other requests (IN and OUT).
>
Yes, IMO it's a proper solution. When user sets qlen to given value he
expects that exact number of requests to be allocated and enqueued, and
if we cannot do that we should consider this as an error.
--
Best regards,
Robert
next prev parent reply other threads:[~2015-11-16 11:43 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-10 17:52 [PATCH v5 0/7] USB MIDI Gadget improvements and bug fixes Felipe F. Tonello
2015-11-10 17:52 ` [PATCH v5 1/7] usb: gadget: f_midi: Transmit data only when IN ep is enabled Felipe F. Tonello
2015-11-13 8:08 ` Robert Baldyga
2015-11-10 17:52 ` [PATCH v5 2/7] usb: gadget: f_midi: remove duplicated code Felipe F. Tonello
2015-11-13 8:09 ` Robert Baldyga
2015-11-10 17:52 ` [PATCH v5 3/7] usb: gadget: define free_ep_req as universal function Felipe F. Tonello
2015-11-13 8:11 ` Robert Baldyga
2015-11-10 17:52 ` [PATCH v5 4/7] usb: gadget: f_midi: fix leak on failed to enqueue out requests Felipe F. Tonello
2015-11-13 8:31 ` Robert Baldyga
2015-11-16 11:08 ` Felipe Ferreri Tonello
2015-11-16 11:43 ` Robert Baldyga [this message]
2015-11-25 13:02 ` Felipe Ferreri Tonello
2015-11-10 17:52 ` [PATCH v5 5/7] usb: gadget: gmidi: Cleanup legacy code Felipe F. Tonello
2015-11-13 8:34 ` Robert Baldyga
2015-11-10 17:52 ` [PATCH v5 6/7] usb: gadget: f_midi: set altsettings only for MIDIStreaming interface Felipe F. Tonello
2015-11-10 18:43 ` Sergei Shtylyov
2015-11-11 9:38 ` Felipe Ferreri Tonello
2015-11-11 18:02 ` Sergei Shtylyov
2015-11-13 8:11 ` Clemens Ladisch
2015-11-16 11:41 ` Felipe Ferreri Tonello
2015-11-13 8:14 ` Clemens Ladisch
2015-11-10 17:52 ` [PATCH v5 7/7] usb: gadget: f_midi: pre-allocate IN requests Felipe F. Tonello
2015-11-13 8:55 ` Clemens Ladisch
2015-11-25 17:22 ` Felipe Ferreri Tonello
2015-11-27 9:05 ` Clemens Ladisch
2015-11-27 18:03 ` Felipe Ferreri Tonello
2015-11-27 19:52 ` Clemens Ladisch
2015-11-13 12:38 ` Robert Baldyga
2015-11-25 16:54 ` Felipe Ferreri Tonello
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=5649C168.2030805@samsung.com \
--to=r.baldyga@samsung.com \
--cc=balbi@ti.com \
--cc=clemens@ladisch.de \
--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.