
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
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.
Oh and by the way, in the fastboot protocol description (doc/README.android-fastboot-protocol), it clearly says: "zero-length packets are ignored".