USB: opticon: fix DMA from stack
Make sure to allocate the control-message buffer dynamically as some platforms cannot do DMA from stack. Note that only the first byte of the old buffer was used. Cc: <stable@vger.kernel.org> Signed-off-by: Johan Hovold <jhovold@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
2f0295adf6
commit
ea0dbebffe
|
@ -155,7 +155,11 @@ static int send_control_msg(struct usb_serial_port *port, u8 requesttype,
|
|||
{
|
||||
struct usb_serial *serial = port->serial;
|
||||
int retval;
|
||||
u8 buffer[2];
|
||||
u8 *buffer;
|
||||
|
||||
buffer = kzalloc(1, GFP_KERNEL);
|
||||
if (!buffer)
|
||||
return -ENOMEM;
|
||||
|
||||
buffer[0] = val;
|
||||
/* Send the message to the vendor control endpoint
|
||||
|
@ -164,6 +168,7 @@ static int send_control_msg(struct usb_serial_port *port, u8 requesttype,
|
|||
requesttype,
|
||||
USB_DIR_OUT|USB_TYPE_VENDOR|USB_RECIP_INTERFACE,
|
||||
0, 0, buffer, 1, 0);
|
||||
kfree(buffer);
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue