From: Pekka Enberg Date: Tue, 25 Aug 2020 16:42:54 +0000 (+0300) Subject: riscv/mm/fault: Move FAULT_FLAG_WRITE handling in do_page_fault() X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=6747430197ed414be37e843064a7f365f4d1fd57;p=linux.git riscv/mm/fault: Move FAULT_FLAG_WRITE handling in do_page_fault() Let's handle the translation of EXC_STORE_PAGE_FAULT to FAULT_FLAG_WRITE once before looking up the VMA. This makes it easier to extract access error logic in the next patch. Signed-off-by: Pekka Enberg Signed-off-by: Palmer Dabbelt --- diff --git a/arch/riscv/mm/fault.c b/arch/riscv/mm/fault.c index 3b430fb18de3b..bdc70d3d507f1 100644 --- a/arch/riscv/mm/fault.c +++ b/arch/riscv/mm/fault.c @@ -208,6 +208,9 @@ asmlinkage void do_page_fault(struct pt_regs *regs) perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, addr); + if (cause == EXC_STORE_PAGE_FAULT) + flags |= FAULT_FLAG_WRITE; + retry: mmap_read_lock(mm); vma = find_vma(mm, addr); @@ -251,7 +254,6 @@ good_area: bad_area(regs, mm, code, addr); return; } - flags |= FAULT_FLAG_WRITE; break; default: panic("%s: unhandled cause %lu", __func__, cause);