1
linux/drivers/video/via
Bruno Prémont e687d691cb viafb: fix crashes due to 4k stack overflow
The function viafb_cursor() uses 2 stack-variables of CURSOR_SIZE bits;
CURSOR_SIZE is defined as (8 * 1024).  Using up twice 1k on stack is too
much for 4k-stack (though it works with 8k-stacks).  Make those two
variables kzalloc'ed to preserve stack space.

Also merge the whole lot of local struct's in viafb_ioctl into a union so
the stack usage gets minimized here as well.  (struct's are only accessed
in their indicidual IOCTL case) This second part is only compile-tested as
I know of no userspace app using the IOCTLs.

Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
Cc: <JosephChan@via.com.tw>
Cc: Krzysztof Helt <krzysztof.h1@poczta.fm>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-01-04 13:33:20 -08:00
..
accel.c viafb: accel.c, accel.h 2008-10-16 11:21:41 -07:00
accel.h viafb: accel.c, accel.h 2008-10-16 11:21:41 -07:00
chip.h viafb: chip.h, debug.h 2008-10-16 11:21:41 -07:00
debug.h viafb: chip.h, debug.h 2008-10-16 11:21:41 -07:00
dvi.c viafb: dvi.c, dvi.h, global.c and global.h 2008-10-16 11:21:41 -07:00
dvi.h viafb: dvi.c, dvi.h, global.c and global.h 2008-10-16 11:21:41 -07:00
global.c viafb: dvi.c, dvi.h, global.c and global.h 2008-10-16 11:21:41 -07:00
global.h viafb: removed duplicated #include's 2008-10-30 11:38:45 -07:00
hw.c viafb: hw.c, hw.h 2008-10-16 11:21:41 -07:00
hw.h viafb: hw.c, hw.h 2008-10-16 11:21:41 -07:00
iface.c viafb: iface.c, iface.h, ioctl.c, ioctl.h 2008-10-16 11:21:41 -07:00
iface.h viafb: iface.c, iface.h, ioctl.c, ioctl.h 2008-10-16 11:21:41 -07:00
ioctl.c viafb: iface.c, iface.h, ioctl.c, ioctl.h 2008-10-16 11:21:41 -07:00
ioctl.h viafb: iface.c, iface.h, ioctl.c, ioctl.h 2008-10-16 11:21:41 -07:00
lcd.c viafb: lcd.c, lcd.h, lcdtbl.h 2008-10-16 11:21:41 -07:00
lcd.h viafb: lcd.c, lcd.h, lcdtbl.h 2008-10-16 11:21:41 -07:00
lcdtbl.h viafb: lcd.c, lcd.h, lcdtbl.h 2008-10-16 11:21:41 -07:00
Makefile viafb: Makefile, share.h 2008-10-16 11:21:41 -07:00
share.h viafb: Makefile, share.h 2008-10-16 11:21:41 -07:00
tbl1636.c viafb: tbl1636.c, tbl1636.h, tblDPASetting.c, tblDPASetting.h 2008-10-16 11:21:41 -07:00
tbl1636.h viafb: tbl1636.c, tbl1636.h, tblDPASetting.c, tblDPASetting.h 2008-10-16 11:21:41 -07:00
tblDPASetting.c viafb: tbl1636.c, tbl1636.h, tblDPASetting.c, tblDPASetting.h 2008-10-16 11:21:41 -07:00
tblDPASetting.h viafb: tbl1636.c, tbl1636.h, tblDPASetting.c, tblDPASetting.h 2008-10-16 11:21:41 -07:00
via_i2c.c viafb: via_i2c.c, via_i2c.h, viamode.c, viamode.h 2008-10-16 11:21:42 -07:00
via_i2c.h viafb: via_i2c.c, via_i2c.h, viamode.c, viamode.h 2008-10-16 11:21:42 -07:00
via_utility.c viafb: via_utility.c, via_utility.h, vt1636.c, vt1636.h 2008-10-16 11:21:42 -07:00
via_utility.h viafb: via_utility.c, via_utility.h, vt1636.c, vt1636.h 2008-10-16 11:21:42 -07:00
viafbdev.c viafb: fix crashes due to 4k stack overflow 2009-01-04 13:33:20 -08:00
viafbdev.h viafb: viafbdev.c, viafbdev.h 2008-10-16 11:21:41 -07:00
viamode.c viafb: via_i2c.c, via_i2c.h, viamode.c, viamode.h 2008-10-16 11:21:42 -07:00
viamode.h viafb: via_i2c.c, via_i2c.h, viamode.c, viamode.h 2008-10-16 11:21:42 -07:00
vt1636.c viafb: via_utility.c, via_utility.h, vt1636.c, vt1636.h 2008-10-16 11:21:42 -07:00
vt1636.h viafb: via_utility.c, via_utility.h, vt1636.c, vt1636.h 2008-10-16 11:21:42 -07:00