fotg210-udc: Remove a dubious condition leading to fotg210_done
authorFabian Vogt <fabian@ritter-vogt.de>
Wed, 24 Mar 2021 14:11:11 +0000 (15:11 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 22 May 2021 08:40:23 +0000 (10:40 +0200)
[ Upstream commit c7f755b243494d6043aadcd9a2989cb157958b95 ]

When the EP0 IN request was not completed but less than a packet sent,
it would complete the request successfully. That doesn't make sense
and can't really happen as fotg210_start_dma always sends
min(length, maxpkt) bytes.

Fixes: b84a8dee23fd ("usb: gadget: add Faraday fotg210_udc driver")
Signed-off-by: Fabian Vogt <fabian@ritter-vogt.de>
Link: https://lore.kernel.org/r/20210324141115.9384-4-fabian@ritter-vogt.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/usb/gadget/udc/fotg210-udc.c

index 1eda6fc750c11be201dc98bdeeeea3f45a6d4d85..d0a9ce7d0635b484c155ed3702961c90d5dfa78f 100644 (file)
@@ -385,8 +385,7 @@ static void fotg210_ep0_queue(struct fotg210_ep *ep,
        }
        if (ep->dir_in) { /* if IN */
                fotg210_start_dma(ep, req);
-               if ((req->req.length == req->req.actual) ||
-                   (req->req.actual < ep->ep.maxpacket))
+               if (req->req.length == req->req.actual)
                        fotg210_done(ep, req, 0);
        } else { /* OUT */
                u32 value = ioread32(ep->fotg210->reg + FOTG210_DMISGR0);