From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Kocialkowski Date: Mon, 06 Jul 2015 15:03:19 +0200 Subject: [U-Boot] [PATCH 1/2] usb: gadget: fastboot: Request status and length check in rx handler In-Reply-To: <20150706122840.20ac66e2@amdc2363> References: <1436021176-15701-1-git-send-email-contact@paulk.fr> <20150706122840.20ac66e2@amdc2363> Message-ID: <1436187799.2584.3.camel@collins> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 > > --- > > 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 > > 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". -- Paul Kocialkowski, Replicant developer Replicant is a fully free Android distribution running on several devices, a free software mobile operating system putting the emphasis on freedom and privacy/security. Website: http://www.replicant.us/ Blog: http://blog.replicant.us/ Wiki/tracker/forums: http://redmine.replicant.us/ -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: This is a digitally signed message part URL: