On 08/06/25 at 05:26pm, Lorenzo Stoakes wrote: > On Tue, Aug 05, 2025 at 10:22:31PM -0700, SeongJae Park wrote: > > Hello Baoqua, > > > > On Tue, 5 Aug 2025 14:23:33 +0800 Baoquan He <b...@redhat.com> wrote: > > > > > Now everything is ready, set kasan=off can disable kasan for all > > > three modes. > > > > > > Signed-off-by: Baoquan He <b...@redhat.com> > > > --- > > > include/linux/kasan-enabled.h | 11 +---------- > > > 1 file changed, 1 insertion(+), 10 deletions(-) > > > > > > diff --git a/include/linux/kasan-enabled.h b/include/linux/kasan-enabled.h > > > index 32f2d19f599f..b5857e15ef14 100644 > > > --- a/include/linux/kasan-enabled.h > > > +++ b/include/linux/kasan-enabled.h > > > @@ -8,30 +8,21 @@ extern bool kasan_arg_disabled; > > > > > > DECLARE_STATIC_KEY_FALSE(kasan_flag_enabled); > > > > > > -#ifdef CONFIG_KASAN_HW_TAGS > > > - > > > static __always_inline bool kasan_enabled(void) > > > { > > > return static_branch_likely(&kasan_flag_enabled); > > > } > > > > I found mm-new build fails when CONFIG_KASAN is unset as below, and 'git > > bisect' points this patch. > > Yup just hit this + bisected here.
Sorry for the trouble and thanks for reporting. > > > > > LD .tmp_vmlinux1 > > ld: lib/stackdepot.o:(__jump_table+0x8): undefined reference to > > `kasan_flag_enabled' > > > > Since kasna_flag_enabled is defined in mm/kasan/common.c, I confirmed diff > > like > > below fixes this. I think it may not be a correct fix though, since I > > didn't > > read this patchset thoroughly. > > > > diff --git a/include/linux/kasan-enabled.h b/include/linux/kasan-enabled.h > > index b5857e15ef14..a53d112b1020 100644 > > --- a/include/linux/kasan-enabled.h > > +++ b/include/linux/kasan-enabled.h > > @@ -8,11 +8,22 @@ extern bool kasan_arg_disabled; > > > > DECLARE_STATIC_KEY_FALSE(kasan_flag_enabled); > > > > +#ifdef CONFIG_KASAN > > + > > Shouldn't we put this above the static key declaration? > > Feels like the whole header should be included really. You are right, kasan_flag_enabled should be included in CONFIG_KASAN ifdeffery scope. Since CONFIG_KASAN_HW_TAGS depends on CONFIG_KASAN, we may not need include below CONFIG_KASAN_HW_TAGS ifdeffery into CONFIG_KASAN ifdeffery scope. Not sure if this is incorrect. Thanks a lot for checking this. > > > static __always_inline bool kasan_enabled(void) > > { > > return static_branch_likely(&kasan_flag_enabled); > > } > > > > +#else /* CONFIG_KASAN */ > > + > > +static inline bool kasan_enabled(void) > > +{ > > + return false; > > +} > > + > > +#endif > > + > > #ifdef CONFIG_KASAN_HW_TAGS > > static inline bool kasan_hw_tags_enabled(void) > > { > > > > > > [...] > > > > Thanks, > > SJ > > > > Cheers, Lorenzo >