aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/mm/fault.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/ia64/mm/fault.c')
-rw-r--r--arch/ia64/mm/fault.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/ia64/mm/fault.c b/arch/ia64/mm/fault.c
index 6cf0341f978e..7225dad87094 100644
--- a/arch/ia64/mm/fault.c
+++ b/arch/ia64/mm/fault.c
@@ -90,8 +90,6 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re
90 mask = ((((isr >> IA64_ISR_X_BIT) & 1UL) << VM_EXEC_BIT) 90 mask = ((((isr >> IA64_ISR_X_BIT) & 1UL) << VM_EXEC_BIT)
91 | (((isr >> IA64_ISR_W_BIT) & 1UL) << VM_WRITE_BIT)); 91 | (((isr >> IA64_ISR_W_BIT) & 1UL) << VM_WRITE_BIT));
92 92
93 flags |= ((mask & VM_WRITE) ? FAULT_FLAG_WRITE : 0);
94
95 /* mmap_sem is performance critical.... */ 93 /* mmap_sem is performance critical.... */
96 prefetchw(&mm->mmap_sem); 94 prefetchw(&mm->mmap_sem);
97 95
@@ -119,6 +117,10 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re
119 if (notify_page_fault(regs, TRAP_BRKPT)) 117 if (notify_page_fault(regs, TRAP_BRKPT))
120 return; 118 return;
121 119
120 if (user_mode(regs))
121 flags |= FAULT_FLAG_USER;
122 if (mask & VM_WRITE)
123 flags |= FAULT_FLAG_WRITE;
122retry: 124retry:
123 down_read(&mm->mmap_sem); 125 down_read(&mm->mmap_sem);
124 126