Skip to content

Commit 48d2f04

Browse files
chleroympe
authored andcommitted
powerpc/kasan: Fix KASAN_SHADOW_START on BOOK3S_32
On BOOK3S_32, when we have modules and strict kernel RWX, modules are not in vmalloc space but in a dedicated segment that is below PAGE_OFFSET. So KASAN_SHADOW_START must take it into account. MODULES_VADDR can't be used because it is not defined yet in kasan.h Fixes: 6ca0553 ("powerpc/32s: Use dedicated segment for modules with STRICT_KERNEL_RWX") Signed-off-by: Christophe Leroy <[email protected]> Signed-off-by: Michael Ellerman <[email protected]> Link: https://lore.kernel.org/r/6eddca2d5611fd57312a88eae31278c87a8fc99d.1596641224.git.christophe.leroy@csgroup.eu
1 parent fdc6edb commit 48d2f04

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

arch/powerpc/include/asm/kasan.h

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,18 @@
1515
#ifndef __ASSEMBLY__
1616

1717
#include <asm/page.h>
18+
#include <linux/sizes.h>
1819

1920
#define KASAN_SHADOW_SCALE_SHIFT 3
2021

22+
#if defined(CONFIG_PPC_BOOK3S_32) && defined(CONFIG_MODULES) && defined(CONFIG_STRICT_KERNEL_RWX)
23+
#define KASAN_KERN_START ALIGN_DOWN(PAGE_OFFSET - SZ_256M, SZ_256M)
24+
#else
25+
#define KASAN_KERN_START PAGE_OFFSET
26+
#endif
27+
2128
#define KASAN_SHADOW_START (KASAN_SHADOW_OFFSET + \
22-
(PAGE_OFFSET >> KASAN_SHADOW_SCALE_SHIFT))
29+
(KASAN_KERN_START >> KASAN_SHADOW_SCALE_SHIFT))
2330

2431
#define KASAN_SHADOW_OFFSET ASM_CONST(CONFIG_KASAN_SHADOW_OFFSET)
2532

0 commit comments

Comments
 (0)