diff options
author | Roland McGrath <roland@redhat.com> | 2008-01-30 07:30:43 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 07:30:43 -0500 |
commit | af65d64845a90c8f2fc90b97e2148ff74672e979 (patch) | |
tree | e70a57a9635acaf8154c150f95e11dcb51937fd8 /arch/x86/vdso/vdso32.S | |
parent | 00f8b1bc0e44ba94fb33e1fbd8ac82841d7cc570 (diff) |
x86 vDSO: consolidate vdso32
This makes x86_64's ia32 emulation support share the sources used in the
32-bit kernel for the 32-bit vDSO and much of its setup code.
The 32-bit vDSO mapping now behaves the same on x86_64 as on native 32-bit.
The abi.syscall32 sysctl on x86_64 now takes the same values that
vm.vdso_enabled takes on the 32-bit kernel. That is, 1 means a randomized
vDSO location, 2 means the fixed old address. The CONFIG_COMPAT_VDSO
option is now available to make this the default setting, the same meaning
it has for the 32-bit kernel. (This does not affect the 64-bit vDSO.)
The argument vdso32=[012] can be used on both 32-bit and 64-bit kernels to
set this paramter at boot time. The vdso=[012] argument still does this
same thing on the 32-bit 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/vdso/vdso32.S')
-rw-r--r-- | arch/x86/vdso/vdso32.S | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/arch/x86/vdso/vdso32.S b/arch/x86/vdso/vdso32.S index cab020c99c3d..1e36f72cab86 100644 --- a/arch/x86/vdso/vdso32.S +++ b/arch/x86/vdso/vdso32.S | |||
@@ -2,14 +2,18 @@ | |||
2 | 2 | ||
3 | __INITDATA | 3 | __INITDATA |
4 | 4 | ||
5 | .globl vsyscall_int80_start, vsyscall_int80_end | 5 | .globl vdso32_default_start, vdso32_default_end |
6 | vsyscall_int80_start: | 6 | vdso32_default_start: |
7 | #ifdef CONFIG_X86_32 | ||
7 | .incbin "arch/x86/vdso/vdso32-int80.so" | 8 | .incbin "arch/x86/vdso/vdso32-int80.so" |
8 | vsyscall_int80_end: | 9 | #else |
10 | .incbin "arch/x86/vdso/vdso32-syscall.so" | ||
11 | #endif | ||
12 | vdso32_default_end: | ||
9 | 13 | ||
10 | .globl vsyscall_sysenter_start, vsyscall_sysenter_end | 14 | .globl vdso32_sysenter_start, vdso32_sysenter_end |
11 | vsyscall_sysenter_start: | 15 | vdso32_sysenter_start: |
12 | .incbin "arch/x86/vdso/vdso32-sysenter.so" | 16 | .incbin "arch/x86/vdso/vdso32-sysenter.so" |
13 | vsyscall_sysenter_end: | 17 | vdso32_sysenter_end: |
14 | 18 | ||
15 | __FINIT | 19 | __FINIT |