diff options
author | Roland McGrath <roland@redhat.com> | 2008-01-30 07:30:42 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 07:30:42 -0500 |
commit | 6c3652efcafa6a6d795093362cb4290c84994b5c (patch) | |
tree | 1587379f45a7145a64c3103b40e12b01c46ea559 /arch/x86/kernel/signal_32.c | |
parent | 0249c9c1e7505c2b020bcc6deaf1e0415de9943e (diff) |
x86 vDSO: i386 vdso32
This makes the i386 kernel use the new vDSO build in arch/x86/vdso/vdso32/
to replace the old one from arch/x86/kernel/.
Signed-off-by: Roland McGrath <roland@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/kernel/signal_32.c')
-rw-r--r-- | arch/x86/kernel/signal_32.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/x86/kernel/signal_32.c b/arch/x86/kernel/signal_32.c index 5c6170c44b00..1ac53e9a0859 100644 --- a/arch/x86/kernel/signal_32.c +++ b/arch/x86/kernel/signal_32.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <asm/ucontext.h> | 23 | #include <asm/ucontext.h> |
24 | #include <asm/uaccess.h> | 24 | #include <asm/uaccess.h> |
25 | #include <asm/i387.h> | 25 | #include <asm/i387.h> |
26 | #include <asm/vdso.h> | ||
26 | #include "sigframe_32.h" | 27 | #include "sigframe_32.h" |
27 | 28 | ||
28 | #define DEBUG_SIG 0 | 29 | #define DEBUG_SIG 0 |
@@ -362,7 +363,7 @@ static int setup_frame(int sig, struct k_sigaction *ka, | |||
362 | } | 363 | } |
363 | 364 | ||
364 | if (current->binfmt->hasvdso) | 365 | if (current->binfmt->hasvdso) |
365 | restorer = (void *)VDSO_SYM(&__kernel_sigreturn); | 366 | restorer = VDSO32_SYMBOL(current->mm->context.vdso, sigreturn); |
366 | else | 367 | else |
367 | restorer = (void *)&frame->retcode; | 368 | restorer = (void *)&frame->retcode; |
368 | if (ka->sa.sa_flags & SA_RESTORER) | 369 | if (ka->sa.sa_flags & SA_RESTORER) |
@@ -459,7 +460,7 @@ static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, | |||
459 | goto give_sigsegv; | 460 | goto give_sigsegv; |
460 | 461 | ||
461 | /* Set up to return from userspace. */ | 462 | /* Set up to return from userspace. */ |
462 | restorer = (void *)VDSO_SYM(&__kernel_rt_sigreturn); | 463 | restorer = VDSO32_SYMBOL(current->mm->context.vdso, rt_sigreturn); |
463 | if (ka->sa.sa_flags & SA_RESTORER) | 464 | if (ka->sa.sa_flags & SA_RESTORER) |
464 | restorer = ka->sa.sa_restorer; | 465 | restorer = ka->sa.sa_restorer; |
465 | err |= __put_user(restorer, &frame->pretcode); | 466 | err |= __put_user(restorer, &frame->pretcode); |