Messages in this thread | | | Date | Fri, 12 May 2023 10:56:23 +0200 | Subject | Re: [PATCH 04/12] riscv: mm: init: Pass a pointer to virt_to_page() | From | Alexandre Ghiti <> |
| |
+cc linux-riscv
On 5/11/23 13:59, Linus Walleij wrote: > Functions that work on a pointer to virtual memory such as > virt_to_pfn() and users of that function such as > virt_to_page() are supposed to pass a pointer to virtual > memory, ideally a (void *) or other pointer. However since > many architectures implement virt_to_pfn() as a macro, > this function becomes polymorphic and accepts both a > (unsigned long) and a (void *). > > Fix this in the RISCV mm init code, so we can implement > a strongly typed virt_to_pfn(). > > Signed-off-by: Linus Walleij <linus.walleij@linaro.org> > --- > arch/riscv/mm/init.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c > index 747e5b1ef02d..2f7a7c345a6a 100644 > --- a/arch/riscv/mm/init.c > +++ b/arch/riscv/mm/init.c > @@ -356,7 +356,7 @@ static phys_addr_t __init alloc_pte_late(uintptr_t va) > unsigned long vaddr; > > vaddr = __get_free_page(GFP_KERNEL); > - BUG_ON(!vaddr || !pgtable_pte_page_ctor(virt_to_page(vaddr))); > + BUG_ON(!vaddr || !pgtable_pte_page_ctor(virt_to_page((void *)vaddr))); > > return __pa(vaddr); > } > @@ -439,7 +439,7 @@ static phys_addr_t __init alloc_pmd_late(uintptr_t va) > unsigned long vaddr; > > vaddr = __get_free_page(GFP_KERNEL); > - BUG_ON(!vaddr || !pgtable_pmd_page_ctor(virt_to_page(vaddr))); > + BUG_ON(!vaddr || !pgtable_pmd_page_ctor(virt_to_page((void *)vaddr))); > > return __pa(vaddr); > } >
Reviewed-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Thanks,
Alex
| |