riscv/mm/fault: Set FAULT_FLAG_INSTRUCTION flag in do_page_fault()
authorPekka Enberg <penberg@kernel.org>
Sat, 5 Sep 2020 06:07:26 +0000 (09:07 +0300)
committerPalmer Dabbelt <palmerdabbelt@google.com>
Wed, 16 Sep 2020 01:46:11 +0000 (18:46 -0700)
If the page fault "cause" is EXC_INST_PAGE_FAULT, set the
FAULT_FLAG_INSTRUCTION flag to let handle_mm_fault() and friends know
about it. This has no functional changes because RISC-V uses the default
arch_vma_access_permitted() implementation, which always returns true.
However, dax_pmd_fault(), for example, has a tracepoint that uses
FAULT_FLAG_INSTRUCTION, so we might as well set it.

Signed-off-by: Pekka Enberg <penberg@kernel.org>
Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
arch/riscv/mm/fault.c

index a173432ccf829bac8b6a1e396cba4cacfd8aad3d..1359e21c0c62a8d7f4e90e174ee8948e9072aedd 100644 (file)
@@ -234,7 +234,8 @@ asmlinkage void do_page_fault(struct pt_regs *regs)
 
        if (cause == EXC_STORE_PAGE_FAULT)
                flags |= FAULT_FLAG_WRITE;
-
+       else if (cause == EXC_INST_PAGE_FAULT)
+               flags |= FAULT_FLAG_INSTRUCTION;
 retry:
        mmap_read_lock(mm);
        vma = find_vma(mm, addr);