diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2016-11-28 23:57:26 -0800 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-11-28 23:57:26 -0800 |
commit | 894ba12732f0bdfc4e4a8b339067c3466f927744 (patch) | |
tree | 9dfdc74d902d28fc7f87f01d2e541f509e3eafc1 | |
parent | 2c6ca087dab363ec8309ecb9010ce1f9602a0ac2 (diff) | |
parent | 6b18be5a733fa378754f0e6383365465d5db1f86 (diff) |
Merge "arm64: avoid segfault on el0 cache maintenance"
-rw-r--r-- | arch/arm64/mm/fault.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c index 55b944a913cb..7326be306618 100644 --- a/arch/arm64/mm/fault.c +++ b/arch/arm64/mm/fault.c @@ -283,7 +283,8 @@ static int __kprobes do_page_fault(unsigned long addr, unsigned int esr, if (esr & ESR_LNX_EXEC) { vm_flags = VM_EXEC; - } else if ((esr & ESR_ELx_WNR) && !(esr & ESR_ELx_CM)) { + } else if (((esr & ESR_ELx_WNR) && !(esr & ESR_ELx_CM)) || + ((esr & ESR_ELx_CM) && !(mm_flags & FAULT_FLAG_USER))) { vm_flags = VM_WRITE; mm_flags |= FAULT_FLAG_WRITE; } |