Messages in this thread | | | From | Anup Patel <> | Date | Thu, 17 Sep 2020 13:29:12 +0530 | Subject | Re: [PATCH] riscv: fix pfn_to_virt err in do_page_fault(). |
| |
On Thu, Sep 17, 2020 at 12:56 PM liush <liush@allwinnertech.com> wrote: > > The argument to pfn_to_virt() should be pfn not the value of CSR_SATP. > > Signed-off-by: liush <liush@allwinnertech.com> > --- > arch/riscv/mm/fault.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/riscv/mm/fault.c b/arch/riscv/mm/fault.c > index 716d64e..9b4e088 100644 > --- a/arch/riscv/mm/fault.c > +++ b/arch/riscv/mm/fault.c > @@ -212,7 +212,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs) > * of a task switch. > */ > index = pgd_index(addr); > - pgd = (pgd_t *)pfn_to_virt(csr_read(CSR_SATP)) + index; > + pgd = (pgd_t *)pfn_to_virt(csr_read(CSR_SATP) & SATP_PPN) + index; > pgd_k = init_mm.pgd + index; > > if (!pgd_present(*pgd_k)) > -- > 2.7.4 >
Looks good to me.
Reviewed-by: Anup Patel <anup@brainfault.org>
Regards, Anup
| |