aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh/mm/fault.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sh/mm/fault.c')
-rw-r--r--arch/sh/mm/fault.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/arch/sh/mm/fault.c b/arch/sh/mm/fault.c
index 1f49c28affa9..541dc6101508 100644
--- a/arch/sh/mm/fault.c
+++ b/arch/sh/mm/fault.c
@@ -400,9 +400,7 @@ asmlinkage void __kprobes do_page_fault(struct pt_regs *regs,
400 struct mm_struct *mm; 400 struct mm_struct *mm;
401 struct vm_area_struct * vma; 401 struct vm_area_struct * vma;
402 int fault; 402 int fault;
403 int write = error_code & FAULT_CODE_WRITE; 403 unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
404 unsigned int flags = (FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE |
405 (write ? FAULT_FLAG_WRITE : 0));
406 404
407 tsk = current; 405 tsk = current;
408 mm = tsk->mm; 406 mm = tsk->mm;
@@ -476,6 +474,11 @@ good_area:
476 474
477 set_thread_fault_code(error_code); 475 set_thread_fault_code(error_code);
478 476
477 if (user_mode(regs))
478 flags |= FAULT_FLAG_USER;
479 if (error_code & FAULT_CODE_WRITE)
480 flags |= FAULT_FLAG_WRITE;
481
479 /* 482 /*
480 * If for any reason at all we couldn't handle the fault, 483 * If for any reason at all we couldn't handle the fault,
481 * make sure we exit gracefully rather than endlessly redo 484 * make sure we exit gracefully rather than endlessly redo