[PATCH for-next] riscv/mm/fault: Set FAULT_FLAG_INSTRUCTION flag in do_page_fault()

Palmer Dabbelt palmer at dabbelt.com
Tue Sep 8 23:14:31 EDT 2020


On Fri, 04 Sep 2020 23:07:26 PDT (-0700), penberg at kernel.org wrote:
> 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 at kernel.org>
> ---
>  arch/riscv/mm/fault.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> 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);

Thanks, this is on for-next.



More information about the linux-riscv mailing list