summaryrefslogtreecommitdiffstats
path: root/drivers/media/usb/s2255
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2016-11-16 14:19:34 +0100
committerThomas Gleixner <tglx@linutronix.de>2016-11-16 14:19:34 +0100
commit7ce7f35b33eb42b6aa4cf176fa34372b21b8472b (patch)
tree12f3027003f1d7cce30f838265e4fab2d52c6cef /drivers/media/usb/s2255
parentf410770293a1fbc08906474c24104a7a11943eb6 (diff)
parent47bdf3378d62a627cfb8a54e1180c08d67078b61 (diff)
downloadblackbird-op-linux-7ce7f35b33eb42b6aa4cf176fa34372b21b8472b.tar.gz
blackbird-op-linux-7ce7f35b33eb42b6aa4cf176fa34372b21b8472b.zip
Merge branch 'x86/cpufeature' into x86/cache
Resolve the cpu/scattered conflict. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'drivers/media/usb/s2255')
-rw-r--r--drivers/media/usb/s2255/s2255drv.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/drivers/media/usb/s2255/s2255drv.c b/drivers/media/usb/s2255/s2255drv.c
index c3a0e87066eb..f7bb78c1873c 100644
--- a/drivers/media/usb/s2255/s2255drv.c
+++ b/drivers/media/usb/s2255/s2255drv.c
@@ -1901,19 +1901,30 @@ static long s2255_vendor_req(struct s2255_dev *dev, unsigned char Request,
s32 TransferBufferLength, int bOut)
{
int r;
+ unsigned char *buf;
+
+ buf = kmalloc(TransferBufferLength, GFP_KERNEL);
+ if (!buf)
+ return -ENOMEM;
+
if (!bOut) {
r = usb_control_msg(dev->udev, usb_rcvctrlpipe(dev->udev, 0),
Request,
USB_TYPE_VENDOR | USB_RECIP_DEVICE |
USB_DIR_IN,
- Value, Index, TransferBuffer,
+ Value, Index, buf,
TransferBufferLength, HZ * 5);
+
+ if (r >= 0)
+ memcpy(TransferBuffer, buf, TransferBufferLength);
} else {
+ memcpy(buf, TransferBuffer, TransferBufferLength);
r = usb_control_msg(dev->udev, usb_sndctrlpipe(dev->udev, 0),
Request, USB_TYPE_VENDOR | USB_RECIP_DEVICE,
- Value, Index, TransferBuffer,
+ Value, Index, buf,
TransferBufferLength, HZ * 5);
}
+ kfree(buf);
return r;
}
OpenPOWER on IntegriCloud