mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 03:15:31 +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
de9d2d297e
commit
9d3c45786f
@@ -78,15 +78,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