We did not have any protection in place to ensure that KASAN shadow memory isn't overwritten during boot. Add that now to avoid strange effects during debugging. Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> --- v1 -> v2: - fix build when CONFIG_KASAN is disabled (Sascha) --- arch/arm/cpu/start.c | 4 ++++ include/linux/kasan.h | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/arch/arm/cpu/start.c b/arch/arm/cpu/start.c index 15f5b2937227..9f4cdfe67fbf 100644 --- a/arch/arm/cpu/start.c +++ b/arch/arm/cpu/start.c @@ -133,6 +133,10 @@ static int barebox_memory_areas_init(void) request_sdram_region("board data", (unsigned long)barebox_boarddata, barebox_boarddata_size); + if (IS_ENABLED(CONFIG_KASAN)) + request_sdram_region("kasan shadow", kasan_shadow_base, + mem_malloc_start() - kasan_shadow_base); + return 0; } device_initcall(barebox_memory_areas_init); diff --git a/include/linux/kasan.h b/include/linux/kasan.h index 54fb993f38ba..5fa0bebb796b 100644 --- a/include/linux/kasan.h +++ b/include/linux/kasan.h @@ -42,11 +42,11 @@ #define KASAN_ALLOCA_LEFT 0xCA #define KASAN_ALLOCA_RIGHT 0xCB -#if defined(CONFIG_KASAN) && !defined(__PBL__) - extern unsigned long kasan_shadow_start; extern unsigned long kasan_shadow_base; +#if defined(CONFIG_KASAN) && !defined(__PBL__) + static inline void *kasan_mem_to_shadow(const void *addr) { unsigned long a = (unsigned long)addr; -- 2.39.2