Re: [PATCH] usb: dwc3: gadget: Fix request complete check

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Greg and Felipe,

Thinh Nguyen wrote:
> We can only check for IN direction if the request had completed. For OUT
> direction, it's perfectly fine that the host can send less than the
> setup length. Let's return true fall all cases of OUT direction.
>
> Fixes: e0c42ce590fe ("usb: dwc3: gadget: simplify IOC handling")
>
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Thinh Nguyen <thinhn@xxxxxxxxxxxx>
> ---
>   drivers/usb/dwc3/gadget.c | 7 +++++++
>   1 file changed, 7 insertions(+)
>
> diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
> index b3f8514d1f27..edc478c20846 100644
> --- a/drivers/usb/dwc3/gadget.c
> +++ b/drivers/usb/dwc3/gadget.c
> @@ -2470,6 +2470,13 @@ 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;
>   }
>   

Not sure if it's too late, but after Tejas's patch* that fixes the SG 
check in dwc3, it exposes another issue. Without this patch, quite a few 
function drivers will not work with dwc3.

If we can pick it up before the next merge, it'd be great.

Thanks,
Thinh

*Patch on Greg's branch usb-linus: 8c7d4b7b3d43 ("usb: dwc3: gadget: Fix 
logical condition")




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux