aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>2008-11-05 21:34:35 -0500
committerIngo Molnar <mingo@elte.hu>2008-11-06 02:02:01 -0500
commit8735b7d0a2a6246faa406a8cdd1376bd0e689ba3 (patch)
treef653fb0d5b3931daa75af744228bd4c9f4c8b8f5
parentee7d523c124a186ce3a886868de9cd1d8bc991f3 (diff)
x86: signal_64: make setup_sigcontext() similar
Impact: cleanup remove passing task struct. Signed-off-by: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r--arch/x86/kernel/signal_64.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/arch/x86/kernel/signal_64.c b/arch/x86/kernel/signal_64.c
index 97d26fa62ac1..3868c2a21793 100644
--- a/arch/x86/kernel/signal_64.c
+++ b/arch/x86/kernel/signal_64.c
@@ -160,8 +160,7 @@ asmlinkage long sys_rt_sigreturn(struct pt_regs *regs)
160 160
161static inline int 161static inline int
162setup_sigcontext(struct sigcontext __user *sc, void __user *fpstate, 162setup_sigcontext(struct sigcontext __user *sc, void __user *fpstate,
163 struct pt_regs *regs, 163 struct pt_regs *regs, unsigned long mask)
164 unsigned long mask, struct task_struct *me)
165{ 164{
166 int err = 0; 165 int err = 0;
167 166
@@ -185,13 +184,13 @@ setup_sigcontext(struct sigcontext __user *sc, void __user *fpstate,
185 err |= __put_user(regs->r13, &sc->r13); 184 err |= __put_user(regs->r13, &sc->r13);
186 err |= __put_user(regs->r14, &sc->r14); 185 err |= __put_user(regs->r14, &sc->r14);
187 err |= __put_user(regs->r15, &sc->r15); 186 err |= __put_user(regs->r15, &sc->r15);
188 err |= __put_user(me->thread.trap_no, &sc->trapno); 187 err |= __put_user(current->thread.trap_no, &sc->trapno);
189 err |= __put_user(me->thread.error_code, &sc->err); 188 err |= __put_user(current->thread.error_code, &sc->err);
190 err |= __put_user(regs->ip, &sc->ip); 189 err |= __put_user(regs->ip, &sc->ip);
191 err |= __put_user(regs->flags, &sc->flags); 190 err |= __put_user(regs->flags, &sc->flags);
192 err |= __put_user(fpstate, &sc->fpstate); 191 err |= __put_user(fpstate, &sc->fpstate);
193 err |= __put_user(mask, &sc->oldmask); 192 err |= __put_user(mask, &sc->oldmask);
194 err |= __put_user(me->thread.cr2, &sc->cr2); 193 err |= __put_user(current->thread.cr2, &sc->cr2);
195 194
196 return err; 195 return err;
197} 196}
@@ -251,8 +250,7 @@ static int __setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
251 err |= __put_user(sas_ss_flags(regs->sp), 250 err |= __put_user(sas_ss_flags(regs->sp),
252 &frame->uc.uc_stack.ss_flags); 251 &frame->uc.uc_stack.ss_flags);
253 err |= __put_user(me->sas_ss_size, &frame->uc.uc_stack.ss_size); 252 err |= __put_user(me->sas_ss_size, &frame->uc.uc_stack.ss_size);
254 err |= setup_sigcontext(&frame->uc.uc_mcontext, fp, 253 err |= setup_sigcontext(&frame->uc.uc_mcontext, fp, regs, set->sig[0]);
255 regs, set->sig[0], me);
256 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); 254 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set));
257 255
258 /* Set up to return from userspace. If provided, use a stub 256 /* Set up to return from userspace. If provided, use a stub