This is a note to let you know that I've just added the patch titled media: av7110_hw: Don't use dynamic static allocation to the 3.12-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: media-av7110_hw-don-t-use-dynamic-static-allocation.patch and it can be found in the queue-3.12 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From 5bf30b3bc4ff80ef71a733a1f459cca4fa507892 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab <m.chehab@xxxxxxxxxxx> Date: Sat, 2 Nov 2013 05:51:59 -0300 Subject: media: av7110_hw: Don't use dynamic static allocation From: Mauro Carvalho Chehab <m.chehab@xxxxxxxxxxx> commit 5bf30b3bc4ff80ef71a733a1f459cca4fa507892 upstream. Dynamic static allocation is evil, as Kernel stack is too low, and compilation complains about it on some archs: drivers/media/pci/ttpci/av7110_hw.c:510:1: warning: 'av7110_fw_cmd' uses dynamic stack allocation [enabled by default] Instead, let's enforce a limit for the buffer. In the specific case of this driver, the maximum fw command size is 6 + 2, as checked using: $ git grep -A1 av7110_fw_cmd drivers/media/pci/ttpci/ So, use 8 for the buffer size. Signed-off-by: Mauro Carvalho Chehab <m.chehab@xxxxxxxxxxx> Reviewed-by: Hans Verkuil <hans.verkuil@xxxxxxxxx> Signed-off-by: Mauro Carvalho Chehab <m.chehab@xxxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/media/pci/ttpci/av7110_hw.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) --- a/drivers/media/pci/ttpci/av7110_hw.c +++ b/drivers/media/pci/ttpci/av7110_hw.c @@ -22,7 +22,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Or, point your browser to http://www.gnu.org/copyleft/gpl.html * - * the project's page is at http://www.linuxtv.org/ + * the project's page is at http://www.linuxtv.org/ */ /* for debugging ARM communication: */ @@ -40,6 +40,14 @@ #define _NOHANDSHAKE +/* + * Max transfer size done by av7110_fw_cmd() + * + * The maximum size passed to this function is 6 bytes. The buffer also + * uses two additional ones for type and size. So, 8 bytes is enough. + */ +#define MAX_XFER_SIZE 8 + /**************************************************************************** * DEBI functions ****************************************************************************/ @@ -488,11 +496,18 @@ static int av7110_send_fw_cmd(struct av7 int av7110_fw_cmd(struct av7110 *av7110, int type, int com, int num, ...) { va_list args; - u16 buf[num + 2]; + u16 buf[MAX_XFER_SIZE]; int i, ret; // dprintk(4, "%p\n", av7110); + if (2 + num > sizeof(buf)) { + printk(KERN_WARNING + "%s: %s len=%d is too big!\n", + KBUILD_MODNAME, __func__, num); + return -EINVAL; + } + buf[0] = ((type << 8) | com); buf[1] = num; Patches currently in stable-queue which might be from m.chehab@xxxxxxxxxxx are queue-3.12/media-af9015-don-t-use-dynamic-static-allocation.patch queue-3.12/media-dw2102-don-t-use-dynamic-static-allocation.patch queue-3.12/media-af9035-don-t-use-dynamic-static-allocation.patch queue-3.12/media-stb0899_drv-don-t-use-dynamic-static-allocation.patch queue-3.12/media-dibusb-common-don-t-use-dynamic-static-allocation.patch queue-3.12/media-cx18-struct-i2c_client-is-too-big-for-stack.patch queue-3.12/media-tuner-xc2028-don-t-use-dynamic-static-allocation.patch queue-3.12/media-cimax2-don-t-use-dynamic-static-allocation.patch queue-3.12/media-tuners-don-t-use-dynamic-static-allocation.patch queue-3.12/media-v4l2-async-don-t-use-dynamic-static-allocation.patch queue-3.12/media-dvb-frontends-again-don-t-use-dynamic-static-allocation.patch queue-3.12/media-dvb-frontends-don-t-use-dynamic-static-allocation.patch queue-3.12/media-stv090x-don-t-use-dynamic-static-allocation.patch queue-3.12/media-s5h1420-don-t-use-dynamic-static-allocation.patch queue-3.12/media-av7110_hw-don-t-use-dynamic-static-allocation.patch queue-3.12/media-stv0367-don-t-use-dynamic-static-allocation.patch queue-3.12/media-lirc_zilog-don-t-use-dynamic-static-allocation.patch queue-3.12/media-cxusb-don-t-use-dynamic-static-allocation.patch queue-3.12/media-mxl111sf-don-t-use-dynamic-static-allocation.patch -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html