aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/signal.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/signal.c')
-rw-r--r--arch/x86/kernel/signal.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/x86/kernel/signal.c b/arch/x86/kernel/signal.c
index 9e5de6813e1f..a0da58db43a8 100644
--- a/arch/x86/kernel/signal.c
+++ b/arch/x86/kernel/signal.c
@@ -298,7 +298,8 @@ __setup_frame(int sig, struct ksignal *ksig, sigset_t *set,
298 } 298 }
299 299
300 if (current->mm->context.vdso) 300 if (current->mm->context.vdso)
301 restorer = VDSO32_SYMBOL(current->mm->context.vdso, sigreturn); 301 restorer = current->mm->context.vdso +
302 selected_vdso32->sym___kernel_sigreturn;
302 else 303 else
303 restorer = &frame->retcode; 304 restorer = &frame->retcode;
304 if (ksig->ka.sa.sa_flags & SA_RESTORER) 305 if (ksig->ka.sa.sa_flags & SA_RESTORER)
@@ -361,7 +362,8 @@ static int __setup_rt_frame(int sig, struct ksignal *ksig,
361 save_altstack_ex(&frame->uc.uc_stack, regs->sp); 362 save_altstack_ex(&frame->uc.uc_stack, regs->sp);
362 363
363 /* Set up to return from userspace. */ 364 /* Set up to return from userspace. */
364 restorer = VDSO32_SYMBOL(current->mm->context.vdso, rt_sigreturn); 365 restorer = current->mm->context.vdso +
366 selected_vdso32->sym___kernel_sigreturn;
365 if (ksig->ka.sa.sa_flags & SA_RESTORER) 367 if (ksig->ka.sa.sa_flags & SA_RESTORER)
366 restorer = ksig->ka.sa.sa_restorer; 368 restorer = ksig->ka.sa.sa_restorer;
367 put_user_ex(restorer, &frame->pretcode); 369 put_user_ex(restorer, &frame->pretcode);