From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Kocialkowski Date: Tue, 14 Jul 2015 12:27:16 +0200 Subject: [U-Boot] [PATCH 1/2] usb: gadget: fastboot: Request status and length check in rx handler In-Reply-To: <20150714122259.76ca4829@amdc2363> References: <1436021176-15701-1-git-send-email-contact@paulk.fr> <20150714122259.76ca4829@amdc2363> Message-ID: <1436869636.2619.1.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 mardi 14 juillet 2015 ? 12:22 +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); > > } > > Any more comments to those patches? I mean 1/2 and 2/2. I could test them on OMAP3 and OMAP5 if you'd like. Together with sunxi (that I developped this on), I think a fair share of platforms using musb-new would be covered. Testing on am33xx and omap4 would be nice, too. -- 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: