Patchwork [3.5.yuz,extended,stable] Patch "USB: opticon: fix DMA from stack" has been added to staging queue

mail settings
Submitter Herton Ronaldo Krzesinski
Date Nov. 22, 2012, 4:49 a.m.
Message ID <>
Download mbox | patch
Permalink /patch/200998/
State New
Headers show


Herton Ronaldo Krzesinski - Nov. 22, 2012, 4:49 a.m.
This is a note to let you know that I have just added a patch titled

    USB: opticon: fix DMA from stack

to the linux-3.5.y-queue branch of the 3.5.yuz extended stable tree 
which can be found at:;a=shortlog;h=refs/heads/linux-3.5.y-queue

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.5.yuz tree, see



From 176121548fabe2356fc0b0b2d9c9c95bb8ade469 Mon Sep 17 00:00:00 2001
From: Johan Hovold <>
Date: Thu, 25 Oct 2012 10:29:11 +0200
Subject: [PATCH] USB: opticon: fix DMA from stack

commit ea0dbebffe118724cd4df7d9b071ea8ee48d48f0 upstream.

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.

Signed-off-by: Johan Hovold <>
Signed-off-by: Greg Kroah-Hartman <>
Signed-off-by: Herton Ronaldo Krzesinski <>
 drivers/usb/serial/opticon.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)



diff --git a/drivers/usb/serial/opticon.c b/drivers/usb/serial/opticon.c
index 02cb1b7..5ba2700 100644
--- a/drivers/usb/serial/opticon.c
+++ b/drivers/usb/serial/opticon.c
@@ -158,7 +158,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
@@ -167,6 +171,7 @@  static int send_control_msg(struct usb_serial_port *port, u8 requesttype,
 				0, 0, buffer, 1, 0);
+	kfree(buffer);

 	return retval;