]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
USB: UDC: net22{80,72}: remove mistaken test of req->zero
authorAlan Stern <stern@rowland.harvard.edu>
Mon, 15 Apr 2019 17:35:46 +0000 (13:35 -0400)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Fri, 3 May 2019 06:13:47 +0000 (09:13 +0300)
The net2280 UDC driver (and also net2272, probably via copy-and-paste)
incorrectly checks the req->zero flag during OUT transfers, after
copying data from the UDC's FIFO into memory.  This makes no sense at
all; the "zero" flag indicates that an extra zero-length packet should
be appended to an IN transfer if the length is an even multiple of the
maxpacket size.  It has nothing to do with OUT transfers.

In practice this doesn't cause any problems because gadget drivers
never set req->zero for OUT transfers anyway.  Still, it is an error
and unnecessary code, so this patch removes the check.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
drivers/usb/gadget/udc/net2272.c
drivers/usb/gadget/udc/net2280.c

index c2011cd7df8cf5fbf0c5a5db153c37a1b0f451a6..564aeee1a1fe728caf1137318aadcd75467a0df6 100644 (file)
@@ -573,8 +573,7 @@ net2272_read_fifo(struct net2272_ep *ep, struct net2272_request *req)
 
                /* completion */
                if (unlikely(cleanup || is_short ||
-                               ((req->req.actual == req->req.length)
-                                && !req->req.zero))) {
+                               req->req.actual == req->req.length)) {
 
                        if (cleanup) {
                                net2272_out_flush(ep);
index b17473a00b430f8522dc3fcd7cf3c5e74b9ebf9f..b6bbe2e448bad3a1b77be6614417119983714ba5 100644 (file)
@@ -789,8 +789,7 @@ static int read_fifo(struct net2280_ep *ep, struct net2280_request *req)
                (void) readl(&ep->regs->ep_rsp);
        }
 
-       return is_short || ((req->req.actual == req->req.length) &&
-                       !req->req.zero);
+       return is_short || req->req.actual == req->req.length;
 }
 
 /* fill out dma descriptor to match a given request */