[U-Boot] [PATCH 1/2] usb: gadget: fastboot: Request status and length check in rx handler

Lukasz Majewski l.majewski at samsung.com
Mon Jul 20 11:57:43 CEST 2015


Hi Paul,

> This avoids handling requests that have an error status or no data.
> In particular, this avoids showing unnecessary error messages when
> the USB gadget gets disconnected (e.g. with fastboot continue) and
> the fastboot USB gadget driver sends an error back to the host (that
> has disconnected already).
> 
> Signed-off-by: Paul Kocialkowski <contact at paulk.fr>
> ---
>  drivers/usb/gadget/f_fastboot.c | 11 ++++++-----
>  1 file changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/usb/gadget/f_fastboot.c
> b/drivers/usb/gadget/f_fastboot.c index 206b6d1..b9a9099 100644
> --- a/drivers/usb/gadget/f_fastboot.c
> +++ b/drivers/usb/gadget/f_fastboot.c
> @@ -635,6 +635,9 @@ static void rx_handler_command(struct usb_ep *ep,
> struct usb_request *req) void (*func_cb)(struct usb_ep *ep, struct
> usb_request *req) = NULL; int i;
>  
> +	if (req->status != 0 || req->length == 0)
> +		return;
> +
>  	for (i = 0; i < ARRAY_SIZE(cmd_dispatch_info); i++) {
>  		if (!strcmp_l1(cmd_dispatch_info[i].cmd, cmdbuf)) {
>  			func_cb = cmd_dispatch_info[i].cb;
> @@ -656,9 +659,7 @@ static void rx_handler_command(struct usb_ep *ep,
> struct usb_request *req) }
>  	}
>  
> -	if (req->status == 0) {
> -		*cmdbuf = '\0';
> -		req->actual = 0;
> -		usb_ep_queue(ep, req, 0);
> -	}
> +	*cmdbuf = '\0';
> +	req->actual = 0;
> +	usb_ep_queue(ep, req, 0);
>  }

Applied to u-boot-dfu.

Thanks for the patch!

-- 
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group


More information about the U-Boot mailing list