Commit 5ba4fd33 authored by Malcolm Priestley's avatar Malcolm Priestley Committed by Greg Kroah-Hartman

staging: vt6656: use off stack for in buffer USB transfers.

commit 05c0cf88 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: default avatarMalcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent f49d36b7
...@@ -75,15 +75,28 @@ int vnt_control_in(struct vnt_private *priv, u8 request, u16 value, ...@@ -75,15 +75,28 @@ int vnt_control_in(struct vnt_private *priv, u8 request, u16 value,
u16 index, u16 length, u8 *buffer) u16 index, u16 length, u8 *buffer)
{ {
int status; int status;
u8 *usb_buffer;
if (test_bit(DEVICE_FLAGS_DISCONNECTED, &priv->flags)) if (test_bit(DEVICE_FLAGS_DISCONNECTED, &priv->flags))
return STATUS_FAILURE; return STATUS_FAILURE;
mutex_lock(&priv->usb_lock); 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, status = usb_control_msg(priv->usb,
usb_rcvctrlpipe(priv->usb, 0), request, 0xc0, value, usb_rcvctrlpipe(priv->usb, 0),
index, buffer, length, USB_CTL_WAIT); 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); mutex_unlock(&priv->usb_lock);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment