projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
490e5fb
)
usb: musb: gadget: fix DMA length for OUT transfer
author
Ming Lei
<
[email protected]
>
Mon, 20 Sep 2010 07:32:04 +0000
(10:32 +0300)
committer
Greg Kroah-Hartman
<
[email protected]
>
Fri, 24 Sep 2010 18:05:01 +0000
(11:05 -0700)
DMA length should not go beyond the availabe space of request buffer,
so fix it.
Signed-off-by: Ming Lei <
[email protected]
>
Acked-by: Anand Gadiyar <
[email protected]
>
Cc: David Brownell <
[email protected]
>
Cc: Anand Gadiyar <
[email protected]
>
Cc: Mike Frysinger <
[email protected]
>
Cc: Sergei Shtylyov <
[email protected]
>
Signed-off-by: Felipe Balbi <
[email protected]
>
Signed-off-by: Greg Kroah-Hartman <
[email protected]
>
drivers/usb/musb/musb_gadget.c
patch
|
blob
|
history
diff --git
a/drivers/usb/musb/musb_gadget.c
b/drivers/usb/musb/musb_gadget.c
index 176e1276dc28addb982a6d9a4ad65b12c049ca29..f3ee04f2e17d5c1719809c00a2a85268f0bca014 100644
(file)
--- a/
drivers/usb/musb/musb_gadget.c
+++ b/
drivers/usb/musb/musb_gadget.c
@@
-659,10
+659,11
@@
static void rxstate(struct musb *musb, struct musb_request *req)
if (request->actual < request->length) {
int transfer_size = 0;
#ifdef USE_MODE1
- transfer_size = min(request->length,
+ transfer_size = min(request->length
- request->actual
,
channel->max_len);
#else
- transfer_size = len;
+ transfer_size = min(request->length - request->actual,
+ (unsigned)len);
#endif
if (transfer_size <= musb_ep->packet_sz)
musb_ep->dma->desired_mode = 0;