Message ID | 20240229191723.32779-1-dvlachos@ics.forth.gr (mailing list archive) |
---|---|
State | Accepted |
Commit | a11dd49dcb9376776193e15641f84fcc1e5980c9 |
Headers | show |
Series | [-fixes,v2] riscv: Sparse-Memory/vmemmap out-of-bounds fix | expand |
Hello: This patch was applied to riscv/linux.git (fixes) by Palmer Dabbelt <palmer@rivosinc.com>: On Thu, 29 Feb 2024 21:17:23 +0200 you wrote: > Offset vmemmap so that the first page of vmemmap will be mapped > to the first page of physical memory in order to ensure that > vmemmap’s bounds will be respected during > pfn_to_page()/page_to_pfn() operations. > The conversion macros will produce correct SV39/48/57 addresses > for every possible/valid DRAM_BASE inside the physical memory limits. > > [...] Here is the summary with links: - [-fixes,v2] riscv: Sparse-Memory/vmemmap out-of-bounds fix https://git.kernel.org/riscv/c/a11dd49dcb93 You are awesome, thank you!
diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h index 0c94260b5..875c9a079 100644 --- a/arch/riscv/include/asm/pgtable.h +++ b/arch/riscv/include/asm/pgtable.h @@ -84,7 +84,7 @@ * Define vmemmap for pfn_to_page & page_to_pfn calls. Needed if kernel * is configured with CONFIG_SPARSEMEM_VMEMMAP enabled. */ -#define vmemmap ((struct page *)VMEMMAP_START) +#define vmemmap ((struct page *)VMEMMAP_START - (phys_ram_base >> PAGE_SHIFT)) #define PCI_IO_SIZE SZ_16M #define PCI_IO_END VMEMMAP_START