On 8/6/25 6:35 AM, Sabyrzhan Tasbolatov wrote: > On Tue, Aug 5, 2025 at 10:19 PM Andrey Ryabinin <ryabinin.a.a@xxxxxxxxx> wrote: >> >> >> >> On 8/5/25 4:26 PM, Sabyrzhan Tasbolatov wrote: >>> >>> diff --git a/arch/um/Kconfig b/arch/um/Kconfig >>> index 9083bfdb773..8d14c8fc2cd 100644 >>> --- a/arch/um/Kconfig >>> +++ b/arch/um/Kconfig >>> @@ -5,6 +5,7 @@ menu "UML-specific options" >>> config UML >>> bool >>> default y >>> + select ARCH_DEFER_KASAN >> >> select ARCH_DEFER_KASAN if STATIC_LINK > > As pointed out in commit 5b301409e8bc("UML: add support for KASAN > under x86_64"), > > : Also note that, while UML supports both KASAN in inline mode > (CONFIG_KASAN_INLINE) > : and static linking (CONFIG_STATIC_LINK), it does not support both at > the same time. > > I've tested that for UML, > ARCH_DEFER_KASAN works if STATIC_LINK && KASAN_OUTLINE > ARCH_DEFER_KASAN works if KASAN_INLINE && !STATIC_LINK > > ARCH_DEFER_KASAN if STATIC_LINK, and KASAN_INLINE=y by default from defconfig > crashes with SEGFAULT here (I didn't understand what it is, I think > the main() constructors > is not prepared in UML): > > ► 0 0x609d6f87 strlen+43 > 1 0x60a20db0 _dl_new_object+48 > 2 0x60a24627 _dl_non_dynamic_init+103 > 3 0x60a25f9a __libc_init_first+42 > 4 0x609eb6b2 __libc_start_main_impl+2434 > 5 0x6004a025 _start+37 > No surprise here, kasan_arch_is_ready() or ARCH_DEFER_KASAN doesn't work with KASAN_INLINE=y This configuration combination (STATIC_LINK + KASAN_INLINE) wasn't possible before: #ifndef kasan_arch_is_ready static inline bool kasan_arch_is_ready(void) { return true; } #elif !defined(CONFIG_KASAN_GENERIC) || !defined(CONFIG_KASAN_OUTLINE) #error kasan_arch_is_ready only works in KASAN generic outline mode! #endif > Since this is the case only for UML, AFAIU, I don't think we want to change > conditions in lib/Kconfig.kasan. Shall I leave UML Kconfig as it is? e.g. > > select ARCH_DEFER_KASAN > No, this should have if STATIC_LINK