Re: default 0 if KASAN expression not working in kbuild

From: Randy Dunlap
Date: Thu Dec 15 2016 - 16:34:44 EST

On 12/15/16 10:09, Nikolay Borisov wrote:
> Hello,
> I was doing some kasan-related debugging and when I enabled it I started
> getting warnings for large stackframes. So CONFIG_FRAME_WARN has :
> int "Warn for stack frames larger than (needs gcc 4.4)"
> range 0 8192
> default 0 if KASAN
> default 1024 if !64BIT
> default 2048 if 64BIT
> This means that frame_warns should effectively be disabled when kasan is
> enabled. However in my case this is not the situation.
> here is the config file. It does have
> CONFIG_KASAN=y and CONFIG_FRAME_WARN=1024 . And even this is erroneous
> since it's a 64bit kernel, so it should be 2k. I haven't manually set
> the limit to 1k either.

Yeah, it set FRAME_WARN=1024 for me also.

It seems to be dependent on order of kconfig symbols in

If I move the line:
source "lib/Kconfig.kasan"
to just after this line:
menu "Compile-time checks and compiler options"
it seems to work for me.

Can you test the patch below?

From: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>

Move the KASAN kconfig symbols to above where they are used
so that their chosen values are used later.

Signed-off-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
lib/Kconfig.debug | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

--- lnx-49.orig/lib/Kconfig.debug
+++ lnx-49/lib/Kconfig.debug
@@ -117,6 +117,8 @@ endmenu # "printk and dmesg options"

menu "Compile-time checks and compiler options"

+source "lib/Kconfig.kasan"
bool "Compile the kernel with debug info"
@@ -695,8 +697,6 @@ config DEBUG_STACKOVERFLOW

source "lib/Kconfig.kmemcheck"

-source "lib/Kconfig.kasan"
endmenu # "Memory Debugging"