
Le lundi 06 juillet 2015 à 12:28 +0200, Lukasz Majewski a écrit :
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@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@samsung.com
Thanks!
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.
That would be nice, but it should only affect people using a recent version of fastboot. I have also tested this with other (older) versions (for which everything worked fine already).
However, I certainly haven't covered all use cases, so more testing is indeed welcome!