Messages in this thread | | | From | Anup Patel <> | Date | Thu, 2 Jan 2020 09:01:58 +0530 | Subject | Re: [PATCH 2/2] riscv: mm: use __pa_symbol for kernel symbols |
| |
On Thu, Jan 2, 2020 at 8:42 AM Zong Li <zong.li@sifive.com> wrote: > > __pa_symbol is the marcro that should be used for kernel symbols. It is > also a pre-requisite for DEBUG_VIRTUAL which will do bounds checking. > > Signed-off-by: Zong Li <zong.li@sifive.com> > --- > arch/riscv/mm/init.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c > index 69f6678db7f3..965a8cf4829c 100644 > --- a/arch/riscv/mm/init.c > +++ b/arch/riscv/mm/init.c > @@ -99,13 +99,13 @@ static void __init setup_initrd(void) > pr_info("initrd not found or empty"); > goto disable; > } > - if (__pa(initrd_end) > PFN_PHYS(max_low_pfn)) { > + if (__pa_symbol(initrd_end) > PFN_PHYS(max_low_pfn)) { > pr_err("initrd extends beyond end of memory"); > goto disable; > } > > size = initrd_end - initrd_start; > - memblock_reserve(__pa(initrd_start), size); > + memblock_reserve(__pa_symbol(initrd_start), size); > initrd_below_start_ok = 1; > > pr_info("Initial ramdisk at: 0x%p (%lu bytes)\n", > @@ -124,8 +124,8 @@ void __init setup_bootmem(void) > { > struct memblock_region *reg; > phys_addr_t mem_size = 0; > - phys_addr_t vmlinux_end = __pa(&_end); > - phys_addr_t vmlinux_start = __pa(&_start); > + phys_addr_t vmlinux_end = __pa_symbol(&_end); > + phys_addr_t vmlinux_start = __pa_symbol(&_start); > > /* Find the memory region containing the kernel */ > for_each_memblock(memory, reg) { > @@ -445,7 +445,7 @@ static void __init setup_vm_final(void) > > /* Setup swapper PGD for fixmap */ > create_pgd_mapping(swapper_pg_dir, FIXADDR_START, > - __pa(fixmap_pgd_next), > + __pa_symbol(fixmap_pgd_next), > PGDIR_SIZE, PAGE_TABLE); > > /* Map all memory banks */ > @@ -474,7 +474,7 @@ static void __init setup_vm_final(void) > clear_fixmap(FIX_PMD); > > /* Move to swapper page table */ > - csr_write(CSR_SATP, PFN_DOWN(__pa(swapper_pg_dir)) | SATP_MODE); > + csr_write(CSR_SATP, PFN_DOWN(__pa_symbol(swapper_pg_dir)) | SATP_MODE); > local_flush_tlb_all(); > } > #else > -- > 2.24.1 >
Overall looks good to me.
Reviewed-by: Anup Patel <anup@brainfault.org>
I have not tried this patch but can you confirm that __pa_symbol() works fine even when DEBUG_VIRTUAL=n
Regards, Anup
| |