From: Alexandre Ghiti Date: Tue, 29 Jun 2021 09:13:47 +0000 (+0200) Subject: riscv: Make sure the linear mapping does not use the kernel mapping X-Git-Tag: accepted/tizen/unified/20230118.172025~6608^2~18 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c99127c452484ac89c75af39c3c865174ce2de99;p=platform%2Fkernel%2Flinux-rpi.git riscv: Make sure the linear mapping does not use the kernel mapping For 64-bit kernel, the end of the address space is occupied by the kernel mapping and currently, the functions to populate the kernel page tables (i.e. create_p*d_mapping) do not override existing mapping so we must make sure the linear mapping does not map memory in the kernel mapping by clipping the memory above the memory limit. Signed-off-by: Alexandre Ghiti Fixes: c9811e379b21 ("riscv: Add mem kernel parameter support") Signed-off-by: Palmer Dabbelt --- diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c index e4356d6..644a34b 100644 --- a/arch/riscv/mm/init.c +++ b/arch/riscv/mm/init.c @@ -717,6 +717,8 @@ static void __init setup_vm_final(void) if (start <= __pa(PAGE_OFFSET) && __pa(PAGE_OFFSET) < end) start = __pa(PAGE_OFFSET); + if (end >= __pa(PAGE_OFFSET) + memory_limit) + end = __pa(PAGE_OFFSET) + memory_limit; map_size = best_map_size(start, end - start); for (pa = start; pa < end; pa += map_size) {