diff options
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/arm/mm/fault.c | 11 |
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 | */ |
| 159 | static void | 159 | static 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 | ||
| 398 | no_context: | 399 | no_context: |
