diff options
author | Pekka Enberg <penberg@kernel.org> | 2020-09-05 09:07:26 +0300 |
---|---|---|
committer | Palmer Dabbelt <palmerdabbelt@google.com> | 2020-09-15 18:46:11 -0700 |
commit | a960c1323749383e62b67f5d49cdfbdcccde0ef6 (patch) | |
tree | e5a22bc2e128c39fa297d6052b42494c7672c9c8 /arch/riscv | |
parent | 2baa6d9506f24d52f53317f60ccbcdbb2c4f4c40 (diff) | |
download | linux-stable-a960c1323749383e62b67f5d49cdfbdcccde0ef6.tar.gz linux-stable-a960c1323749383e62b67f5d49cdfbdcccde0ef6.tar.bz2 linux-stable-a960c1323749383e62b67f5d49cdfbdcccde0ef6.zip |
riscv/mm/fault: Set FAULT_FLAG_INSTRUCTION flag in do_page_fault()
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>
Diffstat (limited to 'arch/riscv')
-rw-r--r-- | arch/riscv/mm/fault.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/riscv/mm/fault.c b/arch/riscv/mm/fault.c index a173432ccf82..1359e21c0c62 100644 --- a/arch/riscv/mm/fault.c +++ b/arch/riscv/mm/fault.c @@ -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); |