diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2015-07-23 05:10:38 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2015-08-03 03:25:08 -0400 |
commit | e070dab73523bcbf2409ba8b5c342d53bccc0959 (patch) | |
tree | 92154b37f1e4719e7ec030b8719121dea4412b81 | |
parent | 106eccb4d20f35ebc58ff2286c170d9e79c5ff68 (diff) |
MIPS: Handle page faults of executable but unreadable pages correctly.
Without this we end taking execeptions in an endless loop hanging the
thread.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
-rw-r--r-- | arch/mips/mm/fault.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/mips/mm/fault.c b/arch/mips/mm/fault.c index 36c0f26fac6b..852a41c6da45 100644 --- a/arch/mips/mm/fault.c +++ b/arch/mips/mm/fault.c | |||
@@ -133,7 +133,8 @@ good_area: | |||
133 | #endif | 133 | #endif |
134 | goto bad_area; | 134 | goto bad_area; |
135 | } | 135 | } |
136 | if (!(vma->vm_flags & VM_READ)) { | 136 | if (!(vma->vm_flags & VM_READ) && |
137 | exception_epc(regs) != address) { | ||
137 | #if 0 | 138 | #if 0 |
138 | pr_notice("Cpu%d[%s:%d:%0*lx:%ld:%0*lx] RI violation\n", | 139 | pr_notice("Cpu%d[%s:%d:%0*lx:%ld:%0*lx] RI violation\n", |
139 | raw_smp_processor_id(), | 140 | raw_smp_processor_id(), |