[PATCH v5sub1 7/8] arm64: move kernel image to base of vmalloc area
From: Sudeep Holla <hidden>
Date: 2016-02-12 15:38:46
On 12/02/16 15:26, Catalin Marinas wrote:
On Fri, Feb 12, 2016 at 04:17:09PM +0100, Ard Biesheuvel wrote:quoted
On 12 February 2016 at 16:10, Catalin Marinas [off-list ref] wrote:quoted
On Fri, Feb 12, 2016 at 04:02:58PM +0100, Ard Biesheuvel wrote:quoted
On 12 February 2016 at 15:58, Catalin Marinas [off-list ref] wrote:quoted
On Mon, Feb 01, 2016 at 11:54:52AM +0100, Ard Biesheuvel wrote:quoted
This moves the module area to right before the vmalloc area, and moves the kernel image to the base of the vmalloc area. This is an intermediate step towards implementing KASLR, which allows the kernel image to be located anywhere in the vmalloc area. Signed-off-by: Ard Biesheuvel <redacted>This patch is causing lots of KASAN warnings on Juno (interestingly, it doesn't seem to trigger on Seattle, though we only tried for-next/core). I pushed the branch that I'm currently using here: git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux for-next/kernmap A typical error (though its place varies based on the config options, kernel layout): BUG: KASAN: stack-out-of-bounds in clockevents_program_event+0x28/0x1b0 at addr ffffffc936257cc8Can you confirm that these are stack accesses? I was having similar errors before, and I ended up creating the kasan zero page patch because it turned out the kasan shadow page in question was aliased and the stack writes were occurring elsewhere.It's possible, we are looking into this. Is there any other patch I miss on the above branch?I don't think so but I will checkCommit 7b1af9795773 ("arm64: kasan: ensure that the KASAN zero page is mapped read-only") was merged in -rc2 while the branch above is based on -rc1. Anyway, I merged it into -rc2 and the errors are similar.
Sorry to add more confusion, but I observed similar KASAN warning with latest mainline(v4.5-rc3+, commit c05235d50f68) with below diff. Regards, Sudeep --->8
diff --git i/arch/arm64/Kconfig w/arch/arm64/Kconfig
index 8cc62289a63e..fdd1d75f5bad 100644
--- i/arch/arm64/Kconfig
+++ w/arch/arm64/Kconfig@@ -9,6 +9,7 @@ config ARM64 select ARCH_HAS_GCOV_PROFILE_ALL select ARCH_HAS_SG_CHAIN select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST + select ARCH_HAS_UBSAN_SANITIZE_ALL select ARCH_USE_CMPXCHG_LOCKREF select ARCH_SUPPORTS_ATOMIC_RMW select ARCH_WANT_OPTIONAL_GPIOLIB
diff --git i/arch/arm64/configs/defconfig w/arch/arm64/configs/defconfig
index 86581f793e39..0006b0204b97 100644
--- i/arch/arm64/configs/defconfig
+++ w/arch/arm64/configs/defconfig@@ -240,11 +240,14 @@ CONFIG_DEBUG_INFO=y CONFIG_DEBUG_FS=y CONFIG_MAGIC_SYSRQ=y CONFIG_DEBUG_KERNEL=y +CONFIG_KASAN=y +CONFIG_TEST_KASAN=m CONFIG_LOCKUP_DETECTOR=y # CONFIG_SCHED_DEBUG is not set # CONFIG_DEBUG_PREEMPT is not set # CONFIG_FTRACE is not set CONFIG_MEMTEST=y +CONFIG_UBSAN=y CONFIG_SECURITY=y CONFIG_CRYPTO_ECHAINIV=y CONFIG_CRYPTO_ANSI_CPRNG=y