提交 ec74e920 编写于 作者: E Eric W. Biederman

signal/unicore32: Remove tsk parameter from __do_user_fault

The __do_user_fault function is always called with tsk == current.
Make that obvious by removing the tsk parameter.

This makes it clear that __do_user_fault calls force_sig_fault
on the current task.
Signed-off-by: N"Eric W. Biederman" <ebiederm@xmission.com>
上级 fd65cc84
...@@ -116,10 +116,11 @@ static void __do_kernel_fault(struct mm_struct *mm, unsigned long addr, ...@@ -116,10 +116,11 @@ static void __do_kernel_fault(struct mm_struct *mm, unsigned long addr,
* Something tried to access memory that isn't in our memory map.. * Something tried to access memory that isn't in our memory map..
* User mode accesses just cause a SIGSEGV * User mode accesses just cause a SIGSEGV
*/ */
static void __do_user_fault(struct task_struct *tsk, unsigned long addr, static void __do_user_fault(unsigned long addr, unsigned int fsr,
unsigned int fsr, unsigned int sig, int code, unsigned int sig, int code, struct pt_regs *regs)
struct pt_regs *regs)
{ {
struct task_struct *tsk = current;
tsk->thread.address = addr; tsk->thread.address = addr;
tsk->thread.error_code = fsr; tsk->thread.error_code = fsr;
tsk->thread.trap_no = 14; tsk->thread.trap_no = 14;
...@@ -136,7 +137,7 @@ void do_bad_area(unsigned long addr, unsigned int fsr, struct pt_regs *regs) ...@@ -136,7 +137,7 @@ void do_bad_area(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
* have no context to handle this fault with. * have no context to handle this fault with.
*/ */
if (user_mode(regs)) if (user_mode(regs))
__do_user_fault(tsk, addr, fsr, SIGSEGV, SEGV_MAPERR, regs); __do_user_fault(addr, fsr, SIGSEGV, SEGV_MAPERR, regs);
else else
__do_kernel_fault(mm, addr, fsr, regs); __do_kernel_fault(mm, addr, fsr, regs);
} }
...@@ -310,7 +311,7 @@ static int do_pf(unsigned long addr, unsigned int fsr, struct pt_regs *regs) ...@@ -310,7 +311,7 @@ static int do_pf(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
code = fault == VM_FAULT_BADACCESS ? SEGV_ACCERR : SEGV_MAPERR; code = fault == VM_FAULT_BADACCESS ? SEGV_ACCERR : SEGV_MAPERR;
} }
__do_user_fault(tsk, addr, fsr, sig, code, regs); __do_user_fault(addr, fsr, sig, code, regs);
return 0; return 0;
no_context: no_context:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册