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:
7724325
)
gp8psk: fix gp8psk_usb_in_op() logic
author
Mauro Carvalho Chehab
<
[email protected]
>
Sat, 12 Nov 2016 14:46:27 +0000
(12:46 -0200)
committer
Linus Torvalds
<
[email protected]
>
Sun, 13 Nov 2016 18:02:22 +0000
(10:02 -0800)
Commit
bc29131ecb10
("[media] gp8psk: don't do DMA on stack") fixed the
usage of DMA on stack, but the memcpy was wrong for gp8psk_usb_in_op().
Fix it.
From Derek's email:
"Fix confirmed using 2 different Skywalker models with
HD mpeg4, SD mpeg2."
Suggested-by: Johannes Stezenbach <
[email protected]
>
Fixes: bc29131ecb10 ("[media] gp8psk: don't do DMA on stack")
Tested-by: Derek <
[email protected]
>
Signed-off-by: Mauro Carvalho Chehab <
[email protected]
>
Signed-off-by: Linus Torvalds <
[email protected]
>
drivers/media/usb/dvb-usb/gp8psk.c
patch
|
blob
|
history
diff --git
a/drivers/media/usb/dvb-usb/gp8psk.c
b/drivers/media/usb/dvb-usb/gp8psk.c
index adfd764914517bdbbbff823ee31e5d08ebcac7fb..2829e3082d15903756e7f6939219114cee647a03 100644
(file)
--- a/
drivers/media/usb/dvb-usb/gp8psk.c
+++ b/
drivers/media/usb/dvb-usb/gp8psk.c
@@
-67,7
+67,6
@@
int gp8psk_usb_in_op(struct dvb_usb_device *d, u8 req, u16 value, u16 index, u8
return ret;
while (ret >= 0 && ret != blen && try < 3) {
- memcpy(st->data, b, blen);
ret = usb_control_msg(d->udev,
usb_rcvctrlpipe(d->udev,0),
req,
@@
-81,8
+80,10
@@
int gp8psk_usb_in_op(struct dvb_usb_device *d, u8 req, u16 value, u16 index, u8
if (ret < 0 || ret != blen) {
warn("usb in %d operation failed.", req);
ret = -EIO;
- } else
+ } else
{
ret = 0;
+ memcpy(b, st->data, blen);
+ }
deb_xfer("in: req. %x, val: %x, ind: %x, buffer: ",req,value,index);
debug_dump(b,blen,deb_xfer);