mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 02:50:49 +09:00
staging: vt6656: use off stack for in buffer USB transfers.
commit 05c0cf88be upstream.
Since 4.9 mandated USB buffers to be heap allocated. This causes
the driver to fail.
Create buffer for USB transfers.
Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
6312a84dc8
commit
3eff228fdd
@@ -75,15 +75,28 @@ int vnt_control_in(struct vnt_private *priv, u8 request, u16 value,
|
||||
u16 index, u16 length, u8 *buffer)
|
||||
{
|
||||
int status;
|
||||
u8 *usb_buffer;
|
||||
|
||||
if (test_bit(DEVICE_FLAGS_DISCONNECTED, &priv->flags))
|
||||
return STATUS_FAILURE;
|
||||
|
||||
mutex_lock(&priv->usb_lock);
|
||||
|
||||
usb_buffer = kmalloc(length, GFP_KERNEL);
|
||||
if (!usb_buffer) {
|
||||
mutex_unlock(&priv->usb_lock);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
status = usb_control_msg(priv->usb,
|
||||
usb_rcvctrlpipe(priv->usb, 0), request, 0xc0, value,
|
||||
index, buffer, length, USB_CTL_WAIT);
|
||||
usb_rcvctrlpipe(priv->usb, 0),
|
||||
request, 0xc0, value,
|
||||
index, usb_buffer, length, USB_CTL_WAIT);
|
||||
|
||||
if (status == length)
|
||||
memcpy(buffer, usb_buffer, length);
|
||||
|
||||
kfree(usb_buffer);
|
||||
|
||||
mutex_unlock(&priv->usb_lock);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user