[PATCH -fixes] riscv: Sparse-Memory/vmemmap out-of-bounds fix
Alexandre Ghiti
alex at ghiti.fr
Thu Feb 29 07:38:59 PST 2024
Hi Dimitri,
On 29/02/2024 15:38, Dimitris Vlachos 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.
>
> This is the link to the relevant conversation and bug report.
> Link :https://lore.kernel.org/linux-riscv/20240202135030.42265-1-csd4492@csd.uoc.gr
>
> Co-developed-by: Alexandre Ghiti <alexghiti at rivosinc.com>
You can switch that to a Suggested-by, I did not write the code nor test
anything :)
> Signed-off-by: Dimitris Vlachos <dvlachos at ics.forth.gr>
> Reported-by: Dimitris Vlachos <dvlachos at ics.forth.gr>
I think checkpatch will complain that a Link or Closes tag should follow
a Reported-by: I would move the Link tag in your commit message here.
And we miss a Fixes tag too, I would go for:
Fixes: d95f1a542c3d ("RISC-V: Implement sparsemem")
> ---
> arch/riscv/include/asm/pgtable.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> 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
You can add:
Reviewed-by: Alexandre Ghiti <alexghiti at rivosinc.com>
Thanks,
Alex
More information about the linux-riscv
mailing list