KASAN vs. boot-time switching between 4- and 5-level paging

From: Kirill A. Shutemov
Date: Fri May 26 2017 - 21:27:54 EST


On Thu, May 25, 2017 at 11:33:33PM +0300, Kirill A. Shutemov wrote:
> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> index 0bf81e837cbf..c795207d8a3c 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -100,7 +100,7 @@ config X86
> select HAVE_ARCH_AUDITSYSCALL
> select HAVE_ARCH_HUGE_VMAP if X86_64 || X86_PAE
> select HAVE_ARCH_JUMP_LABEL
> - select HAVE_ARCH_KASAN if X86_64 && SPARSEMEM_VMEMMAP
> + select HAVE_ARCH_KASAN if X86_64 && SPARSEMEM_VMEMMAP && !X86_5LEVEL
> select HAVE_ARCH_KGDB
> select HAVE_ARCH_KMEMCHECK
> select HAVE_ARCH_MMAP_RND_BITS if MMU

Looks like KASAN will be a problem for boot-time paging mode switching.
It wants to know CONFIG_KASAN_SHADOW_OFFSET at compile-time to pass to
gcc -fasan-shadow-offset=. But this value varies between paging modes...

I don't see how to solve it. Folks, any ideas?

--
Kirill A. Shutemov