Messages in this thread | | | From | Zong Li <> | Date | Thu, 2 Jan 2020 11:49:43 +0800 | Subject | Re: [PATCH 2/2] riscv: mm: use __pa_symbol for kernel symbols |
| |
On Thu, Jan 2, 2020 at 11:32 AM Anup Patel <anup@brainfault.org> wrote: > > 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
Yes, it works fine through original way when DEBUG_VIRTUAL is not set.
> > Regards, > Anup
| |