The patch titled video: limit stack usage of ir-kbd-i2c.c has been added to the -mm tree. Its filename is video-limit-stack-usage-of-ir-kbd-i2cc.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: video: limit stack usage of ir-kbd-i2c.c From: Marcin Slusarz <marcin.slusarz@xxxxxxxxx> ir_probe allocated struct i2c_client on stack; it's pretty big structure, so allocate it with kzalloc make checkstack output without this patch: x059d ir_probe [ir-kbd-i2c]: 1000 Signed-off-by: Marcin Slusarz <marcin.slusarz@xxxxxxxxx> Cc: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxx> Cc: Jean Delvare <khali@xxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- drivers/media/video/ir-kbd-i2c.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff -puN drivers/media/video/ir-kbd-i2c.c~video-limit-stack-usage-of-ir-kbd-i2cc drivers/media/video/ir-kbd-i2c.c --- a/drivers/media/video/ir-kbd-i2c.c~video-limit-stack-usage-of-ir-kbd-i2cc +++ a/drivers/media/video/ir-kbd-i2c.c @@ -510,9 +510,9 @@ static int ir_probe(struct i2c_adapter * static const int probe_cx88[] = { 0x18, 0x6b, 0x71, -1 }; static const int probe_cx23885[] = { 0x6b, -1 }; const int *probe = NULL; - struct i2c_client c; + struct i2c_client *c; unsigned char buf; - int i,rc; + int i, rc; switch (adap->id) { case I2C_HW_B_BT848: @@ -537,19 +537,23 @@ static int ir_probe(struct i2c_adapter * if (NULL == probe) return 0; - memset(&c,0,sizeof(c)); - c.adapter = adap; + c = kzalloc(sizeof(*c), GFP_KERNEL); + if (!c) + return -ENOMEM; + + c->adapter = adap; for (i = 0; -1 != probe[i]; i++) { - c.addr = probe[i]; - rc = i2c_master_recv(&c,&buf,0); + c->addr = probe[i]; + rc = i2c_master_recv(c, &buf, 0); dprintk(1,"probe 0x%02x @ %s: %s\n", probe[i], adap->name, (0 == rc) ? "yes" : "no"); if (0 == rc) { - ir_attach(adap,probe[i],0,0); + ir_attach(adap, probe[i], 0, 0); break; } } + kfree(c); return 0; } _ Patches currently in -mm which might be from marcin.slusarz@xxxxxxxxx are video-limit-stack-usage-of-ir-kbd-i2cc.patch git-gfs2-nmw.patch git-ieee1394.patch git-jfs.patch qla3xxx-convert-byte-order-of-constant-instead-of-variable.patch ntfs-le_add_cpu-conversion.patch git-ocfs2.patch scsi-le_add_cpu-conversion.patch ipw2200-le_add_cpu-conversion.patch ext2-le_add_cpu-conversion.patch ext2-convert-byte-order-of-constant-instead-of-variable.patch ext3-convert-byte-order-of-constant-instead-of-variable.patch ufs-e_add_cpu-conversion.patch reiserfs-le_add_cpu-conversion.patch ext4-le_add_cpu-conversion.patch ext4-convert-byte-order-of-constant-instead-of-variable.patch affs-be_add_cpu-conversion.patch hfs-hfsplus-be_add_cpu-conversion.patch quota-le_add_cpu-conversion.patch sysv-e_add_cpu-conversion.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html