diff options
author | Ingo Molnar <mingo@kernel.org> | 2013-10-04 09:59:13 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2013-10-04 09:59:13 +0200 |
commit | fafd883f671dfc1c2f62009179920f27abc784a1 (patch) | |
tree | 0eccb0baf343cad79a54e352598921db9ca17620 /arch/hexagon/mm | |
parent | 92519bbc8af612975410def52bd462ca9af85cdb (diff) | |
parent | d8b11a0cbd1c66ce283eb9dabe0498dfa6483f32 (diff) |
Merge branch 'perf/urgent' into perf/core
Pick up the latest fixes before applying new patches.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/hexagon/mm')
-rw-r--r-- | arch/hexagon/mm/vm_fault.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/hexagon/mm/vm_fault.c b/arch/hexagon/mm/vm_fault.c index 1bd276dbec7d..8704c9320032 100644 --- a/arch/hexagon/mm/vm_fault.c +++ b/arch/hexagon/mm/vm_fault.c @@ -53,8 +53,7 @@ void do_page_fault(unsigned long address, long cause, struct pt_regs *regs) int si_code = SEGV_MAPERR; int fault; const struct exception_table_entry *fixup; - unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE | - (cause > 0 ? FAULT_FLAG_WRITE : 0); + unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE; /* * If we're in an interrupt or have no user context, @@ -65,6 +64,8 @@ void do_page_fault(unsigned long address, long cause, struct pt_regs *regs) local_irq_enable(); + if (user_mode(regs)) + flags |= FAULT_FLAG_USER; retry: down_read(&mm->mmap_sem); vma = find_vma(mm, address); @@ -96,6 +97,7 @@ good_area: case FLT_STORE: if (!(vma->vm_flags & VM_WRITE)) goto bad_area; + flags |= FAULT_FLAG_WRITE; break; } |