Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c2c96321 authored by Felipe Balbi's avatar Felipe Balbi Committed by Greg Kroah-Hartman
Browse files

USB: musb: be careful with 64K+ transfer lengths (gadget side)



request->actual is an unsigned and we should use the same
variable type for fifo_count otherwise we might lose some
data if request->length >= 64kbytes.

[ dbrownell@users.sourceforge.net: fix compiler warning ]

Signed-off-by: default avatarFelipe Balbi <felipe.balbi@nokia.com>
Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 34f32c97
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -575,7 +575,7 @@ static void rxstate(struct musb *musb, struct musb_request *req)
	struct usb_request	*request = &req->request;
	struct musb_ep		*musb_ep = &musb->endpoints[epnum].ep_out;
	void __iomem		*epio = musb->endpoints[epnum].regs;
	u16			fifo_count = 0;
	unsigned		fifo_count = 0;
	u16			len = musb_ep->packet_sz;

	csr = musb_readw(epio, MUSB_RXCSR);
@@ -687,7 +687,7 @@ static void rxstate(struct musb *musb, struct musb_request *req)
					len, fifo_count,
					musb_ep->packet_sz);

			fifo_count = min(len, fifo_count);
			fifo_count = min_t(unsigned, len, fifo_count);

#ifdef	CONFIG_USB_TUSB_OMAP_DMA
			if (tusb_dma_omap() && musb_ep->dma) {