forked from Minki/linux
f410b4093f
With CONFIG_KASAN, the init function uses a large amount of kernel stack:
drivers/media/usb/em28xx/em28xx-dvb.c: In function 'em28xx_dvb_init.part.4':
drivers/media/usb/em28xx/em28xx-dvb.c:2061:1: error: the frame size of 3232 bytes is larger than 2048 bytes [-Werror=frame-larger-than=]
Using gcc-7 with -fsanitize-address-use-after-scope makes this even worse:
drivers/media/usb/em28xx/em28xx-dvb.c: In function 'em28xx_dvb_init':
drivers/media/usb/em28xx/em28xx-dvb.c:2069:1: error: the frame size of 4280 bytes is larger than 3072 bytes [-Werror=frame-larger-than=]
By splitting out each part of the switch/case statement that has its own local
variables into a separate function, no single one of them uses more than 500 bytes,
and with a noinline_for_stack annotation we can ensure that they are not merged
back together.
[mchehab@s-opensource.com: fix conflict with changeset
|
||
---|---|---|
.. | ||
airspy | ||
as102 | ||
au0828 | ||
b2c2 | ||
cpia2 | ||
cx231xx | ||
dvb-usb | ||
dvb-usb-v2 | ||
em28xx | ||
go7007 | ||
gspca | ||
hackrf | ||
hdpvr | ||
msi2500 | ||
pulse8-cec | ||
pvrusb2 | ||
pwc | ||
rainshadow-cec | ||
s2255 | ||
siano | ||
stk1160 | ||
stkwebcam | ||
tm6000 | ||
ttusb-budget | ||
ttusb-dec | ||
usbtv | ||
usbvision | ||
uvc | ||
zr364xx | ||
Kconfig | ||
Makefile |