From: Felipe Balbi <balbi@kernel.org>
To: Thinh Nguyen <Thinh.Nguyen@synopsys.com>,
Thinh Nguyen <Thinh.Nguyen@synopsys.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
"linux-usb\@vger.kernel.org" <linux-usb@vger.kernel.org>
Cc: John Youn <John.Youn@synopsys.com>,
"stable\@vger.kernel.org" <stable@vger.kernel.org>
Subject: Re: [PATCH v2 1/2] usb: dwc3: gadget: Fix request completion check
Date: Fri, 17 Apr 2020 10:06:24 +0300 [thread overview]
Message-ID: <87k12ed21b.fsf@kernel.org> (raw)
In-Reply-To: <5cdcb770-fb6a-14fe-e652-857234c9f69c@synopsys.com>
[-- Attachment #1: Type: text/plain, Size: 2381 bytes --]
Hi Thinh,
Thinh Nguyen <Thinh.Nguyen@synopsys.com> writes:
> Hi Felipe,
>
> Thinh Nguyen wrote:
>> A request may not be completed because not all the TRBs are prepared for
>> it. This happens when we run out of available TRBs. When some TRBs are
>> completed, the driver needs to prepare the rest of the TRBs for the
>> request. The check dwc3_gadget_ep_request_completed() shouldn't be
>> checking the amount of data received but rather the number of pending
>> TRBs. Revise this request completion check.
>>
>> Cc: stable@vger.kernel.org
>> Fixes: e0c42ce590fe ("usb: dwc3: gadget: simplify IOC handling")
>> Signed-off-by: Thinh Nguyen <thinhn@synopsys.com>
>> ---
>> Changes in v2:
>> - Add Cc: stable tag
>>
>> drivers/usb/dwc3/gadget.c | 12 ++----------
>> 1 file changed, 2 insertions(+), 10 deletions(-)
>>
>> diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
>> index 1a4fc03742aa..c45853b14cff 100644
>> --- a/drivers/usb/dwc3/gadget.c
>> +++ b/drivers/usb/dwc3/gadget.c
>> @@ -2550,14 +2550,7 @@ static int dwc3_gadget_ep_reclaim_trb_linear(struct dwc3_ep *dep,
>>
>> static bool dwc3_gadget_ep_request_completed(struct dwc3_request *req)
>> {
>> - /*
>> - * For OUT direction, host may send less than the setup
>> - * length. Return true for all OUT requests.
>> - */
>> - if (!req->direction)
>> - return true;
>> -
>> - return req->request.actual == req->request.length;
>> + return req->num_pending_sgs == 0;
>> }
>>
>> static int dwc3_gadget_ep_cleanup_completed_request(struct dwc3_ep *dep,
>> @@ -2581,8 +2574,7 @@ static int dwc3_gadget_ep_cleanup_completed_request(struct dwc3_ep *dep,
>>
>> req->request.actual = req->request.length - req->remaining;
>>
>> - if (!dwc3_gadget_ep_request_completed(req) ||
>> - req->num_pending_sgs) {
>> + if (!dwc3_gadget_ep_request_completed(req)) {
>> __dwc3_gadget_kick_transfer(dep);
>> goto out;
>> }
>
> Since you'll be picking this up for the rc cycle for your fix patches,
> should I split this series to resend and wait for this patch to be
> merged first before I resend the patch 2/2?
> Let me know how you'd like to proceed.
That's okay. Usually it's better to have the series split, but since
it's only two patches, I can manage :-) I'll just leave patch 2 unread
:-)
--
balbi
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
prev parent reply other threads:[~2020-04-17 7:06 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-31 8:40 [PATCH v2 1/2] usb: dwc3: gadget: Fix request completion check Thinh Nguyen
2020-03-31 8:40 ` [PATCH v2 2/2] usb: dwc3: gadget: Continue to process pending requests Thinh Nguyen
2020-04-17 1:29 ` [PATCH v2 1/2] usb: dwc3: gadget: Fix request completion check Thinh Nguyen
2020-04-17 7:06 ` Felipe Balbi [this message]
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=87k12ed21b.fsf@kernel.org \
--to=balbi@kernel.org \
--cc=John.Youn@synopsys.com \
--cc=Thinh.Nguyen@synopsys.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-usb@vger.kernel.org \
--cc=stable@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).