[PATCH v7 0/4] KASAN for arm64
From: Andrey Ryabinin <hidden>
Date: 2015-11-17 15:47:11
Also in:
linux-mm, lkml
Subsystem:
arm64 port (aarch64 architecture), the rest · Maintainers:
Catalin Marinas, Will Deacon, Linus Torvalds
On 11/17/2015 05:58 PM, Suzuki K. Poulose wrote:
On 16/11/15 15:34, Andrey Ryabinin wrote:quoted
On 11/16/2015 02:16 PM, Suzuki K. Poulose wrote:quoted
On 13/10/15 09:34, Catalin Marinas wrote:quoted
On Mon, Oct 12, 2015 at 06:52:56PM +0300, Andrey Ryabinin wrote:quoted
quoted
Hi, I get the following failure with KASAN + 16K_PAGES + 48BIT_VA, with 4.4-rc1: arch/arm64/mm/kasan_init.c: In function ?kasan_early_init?: include/linux/compiler.h:484:38: error: call to ?__compiletime_assert_95? declared with attribute error: BUILD_BUG_ON failed: !IS_ALIGNED(KASAN_SHADOW_END, PGDIR_SIZE) _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) ^...quoted
Yes, it's really needed, because some code relies on this (e.g. clear_pgs() and kasan_init()). But it should be possible to get rid of this requirement.And the other important point I missed mentioning was that, my tool chain doesn't support KASAN. But still the KASAN support files are still compiled and generates the above error. Shouldn't we disable it at build time if we detect that compiler doesn't support it ? Something like we do for LSE_ATOMICS.
We should either add proper Kconfig dependency for now, or just make it work.
From: Andrey Ryabinin <redacted>
Subject: [PATCH] arm64: KASAN depends on !(ARM64_16K_PAGES && ARM64_VA_BITS_48)
On KASAN + 16K_PAGES + 48BIT_VA
arch/arm64/mm/kasan_init.c: In function ?kasan_early_init?:
include/linux/compiler.h:484:38: error: call to ?__compiletime_assert_95? declared with attribute error: BUILD_BUG_ON failed: !IS_ALIGNED(KASAN_SHADOW_END, PGDIR_SIZE)
_compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
Currently KASAN will not work on 16K_PAGES and 48BIT_VA, so
forbid such configuration to avoid above build failure.
Reported-by: Suzuki K. Poulose <Suzuki.Poulose@arm.com>
Signed-off-by: Andrey Ryabinin <redacted>
---
arch/arm64/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 9ac16a4..bf7de69 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig@@ -49,7 +49,7 @@ config ARM64 select HAVE_ARCH_AUDITSYSCALL select HAVE_ARCH_BITREVERSE select HAVE_ARCH_JUMP_LABEL - select HAVE_ARCH_KASAN if SPARSEMEM_VMEMMAP + select HAVE_ARCH_KASAN if SPARSEMEM_VMEMMAP && !(ARM64_16K_PAGES && ARM64_VA_BITS_48) select HAVE_ARCH_KGDB select HAVE_ARCH_SECCOMP_FILTER select HAVE_ARCH_TRACEHOOK
--
2.4.10