[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