[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 6 12:28:40 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);
> }
Reviewed-by: Lukasz Majewski <l.majewski at samsung.com>
Let's wait for some more time before pulling this patch to u-boot-dfu
tree. I hope that other fastboot users will also review this patch.
--
Best regards,
Lukasz Majewski
Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
More information about the U-Boot
mailing list