Skip to content

Commit

Permalink
[media] mxl111sf: Don't use dynamic static allocation
Browse files Browse the repository at this point in the history
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@samsung.com>
Reviewed-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
  • Loading branch information
Mauro Carvalho Chehab committed Nov 8, 2013
1 parent 7760e14 commit c98300a
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion drivers/media/usb/dvb-usb-v2/mxl111sf.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 "
Expand Down Expand Up @@ -57,7 +60,12 @@ int mxl111sf_ctrl_msg(struct dvb_usb_device *d,
{
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);

Expand Down

0 comments on commit c98300a

Please sign in to comment.