This is a note to let you know that I've just added the patch titled media: mxl111sf: 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-mxl111sf-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 c98300a0e8cf160aaea60bc05d2cd156a7666173 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab <m.chehab@xxxxxxxxxxx> Date: Sat, 2 Nov 2013 08:13:02 -0300 Subject: media: mxl111sf: Don't use dynamic static allocation From: Mauro Carvalho Chehab <m.chehab@xxxxxxxxxxx> commit c98300a0e8cf160aaea60bc05d2cd156a7666173 upstream. Dynamic static allocation is evil, as Kernel stack is too low, and compilation complains about it on some archs: drivers/media/usb/dvb-usb-v2/mxl111sf.c:74:1: warning: 'mxl111sf_ctrl_msg' uses dynamic stack allocation [enabled by default] Instead, let's enforce a limit for the buffer to be the max size of a control URB payload data (64 bytes). 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/usb/dvb-usb-v2/mxl111sf.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) --- a/drivers/media/usb/dvb-usb-v2/mxl111sf.c +++ b/drivers/media/usb/dvb-usb-v2/mxl111sf.c @@ -23,6 +23,9 @@ #include "lgdt3305.h" #include "lg2160.h" +/* Max transfer size done by I2C transfer functions */ +#define MAX_XFER_SIZE 64 + int dvb_usb_mxl111sf_debug; module_param_named(debug, dvb_usb_mxl111sf_debug, int, 0644); MODULE_PARM_DESC(debug, "set debugging level " @@ -57,7 +60,12 @@ int mxl111sf_ctrl_msg(struct dvb_usb_dev { int wo = (rbuf == NULL || rlen == 0); /* write-only */ int ret; - u8 sndbuf[1+wlen]; + u8 sndbuf[MAX_XFER_SIZE]; + + if (1 + wlen > sizeof(sndbuf)) { + pr_warn("%s: len=%d is too big!\n", __func__, wlen); + return -EOPNOTSUPP; + } pr_debug("%s(wlen = %d, rlen = %d)\n", __func__, wlen, rlen); 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