diff options
Diffstat (limited to 'arch/ia64/mm/fault.c')
-rw-r--r-- | arch/ia64/mm/fault.c | 6 |
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; | ||
122 | retry: | 124 | retry: |
123 | down_read(&mm->mmap_sem); | 125 | down_read(&mm->mmap_sem); |
124 | 126 | ||