summaryrefslogtreecommitdiffstats
path: root/arch/arm64/mm
diff options
context:
space:
mode:
authorAnshuman Khandual2019-05-05 06:15:12 +0200
committerCatalin Marinas2019-06-04 15:55:15 +0200
commit01de1776f62e6437ccd207181ec503e8a56e6128 (patch)
treee3e34df65141f255c243d9673a17bb1bf10d906e /arch/arm64/mm
parentarm64/mm: Change BUG_ON() to VM_BUG_ON() in [pmd|pud]_set_huge() (diff)
downloadkernel-qcow2-linux-01de1776f62e6437ccd207181ec503e8a56e6128.tar.gz
kernel-qcow2-linux-01de1776f62e6437ccd207181ec503e8a56e6128.tar.xz
kernel-qcow2-linux-01de1776f62e6437ccd207181ec503e8a56e6128.zip
arm64/mm: Identify user instruction aborts
We don't currently set the FAULT_FLAG_INSTRUCTION mm flag for EL0 instruction aborts. This has no functional impact, as we don't override arch_vma_access_permitted(), and the default implementation always returns true. However, it would be helpful to provide the flag so that it can be consumed by tracepoints such as dax_pmd_fault. This patch sets the FAULT_FLAG_INSTRUCTION flag for EL0 instruction aborts. Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com> Cc: Will Deacon <will.deacon@arm.com> Cc: Mark Rutland <mark.rutland@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm64/mm')
-rw-r--r--arch/arm64/mm/fault.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c
index a30818ed9c60..392386a693fe 100644
--- a/arch/arm64/mm/fault.c
+++ b/arch/arm64/mm/fault.c
@@ -464,6 +464,7 @@ static int __kprobes do_page_fault(unsigned long addr, unsigned int esr,
if (is_el0_instruction_abort(esr)) {
vm_flags = VM_EXEC;
+ mm_flags |= FAULT_FLAG_INSTRUCTION;
} else if ((esr & ESR_ELx_WNR) && !(esr & ESR_ELx_CM)) {
vm_flags = VM_WRITE;
mm_flags |= FAULT_FLAG_WRITE;