aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mm/fault.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mm/fault.c')
-rw-r--r--arch/arm/mm/fault.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
index 58f69fa07df9..324def0279b2 100644
--- a/arch/arm/mm/fault.c
+++ b/arch/arm/mm/fault.c
@@ -157,10 +157,11 @@ __do_kernel_fault(struct mm_struct *mm, unsigned long addr, unsigned int fsr,
157 * User mode accesses just cause a SIGSEGV 157 * User mode accesses just cause a SIGSEGV
158 */ 158 */
159static void 159static void
160__do_user_fault(struct task_struct *tsk, unsigned long addr, 160__do_user_fault(unsigned long addr, unsigned int fsr, unsigned int sig,
161 unsigned int fsr, unsigned int sig, int code, 161 int code, struct pt_regs *regs)
162 struct pt_regs *regs)
163{ 162{
163 struct task_struct *tsk = current;
164
164 if (addr > TASK_SIZE) 165 if (addr > TASK_SIZE)
165 harden_branch_predictor(); 166 harden_branch_predictor();
166 167
@@ -196,7 +197,7 @@ void do_bad_area(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
196 * have no context to handle this fault with. 197 * have no context to handle this fault with.
197 */ 198 */
198 if (user_mode(regs)) 199 if (user_mode(regs))
199 __do_user_fault(tsk, addr, fsr, SIGSEGV, SEGV_MAPERR, regs); 200 __do_user_fault(addr, fsr, SIGSEGV, SEGV_MAPERR, regs);
200 else 201 else
201 __do_kernel_fault(mm, addr, fsr, regs); 202 __do_kernel_fault(mm, addr, fsr, regs);
202} 203}
@@ -392,7 +393,7 @@ retry:
392 SEGV_ACCERR : SEGV_MAPERR; 393 SEGV_ACCERR : SEGV_MAPERR;
393 } 394 }
394 395
395 __do_user_fault(tsk, addr, fsr, sig, code, regs); 396 __do_user_fault(addr, fsr, sig, code, regs);
396 return 0; 397 return 0;
397 398
398no_context: 399no_context: