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 | 36197c92a20c142fc2a068e0366053d770fa0096 (patch) | |
tree | 796f377cadc86bb9cad36090698f6bbaec0ca0f1 /arch/x86/kernel/asm-offsets_64.c | |
parent | 0aa97fb22624f18e5925d702ab0364d3838cfd91 (diff) |
x86 vDSO: ia32 sysenter_return
This changes the 64-bit kernel's support for the 32-bit sysenter
instruction to use stored fields rather than constants for the
user-mode return address, as the 32-bit kernel does. This adds a
sysenter_return field to struct thread_info, as 32-bit has. There
is no observable effect from this yet. It makes the assembly code
independent of the 32-bit vDSO mapping address, paving the way for
making the vDSO address vary as it does on the 32-bit kernel.
[ akpm@linux-foundation.org: build fix on !CONFIG_IA32_EMULATION ]
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/asm-offsets_64.c')
-rw-r--r-- | arch/x86/kernel/asm-offsets_64.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/kernel/asm-offsets_64.c b/arch/x86/kernel/asm-offsets_64.c index 40f41752c1df..c27c646214f4 100644 --- a/arch/x86/kernel/asm-offsets_64.c +++ b/arch/x86/kernel/asm-offsets_64.c | |||
@@ -46,6 +46,9 @@ int main(void) | |||
46 | ENTRY(addr_limit); | 46 | ENTRY(addr_limit); |
47 | ENTRY(preempt_count); | 47 | ENTRY(preempt_count); |
48 | ENTRY(status); | 48 | ENTRY(status); |
49 | #ifdef CONFIG_IA32_EMULATION | ||
50 | ENTRY(sysenter_return); | ||
51 | #endif | ||
49 | BLANK(); | 52 | BLANK(); |
50 | #undef ENTRY | 53 | #undef ENTRY |
51 | #define ENTRY(entry) DEFINE(pda_ ## entry, offsetof(struct x8664_pda, entry)) | 54 | #define ENTRY(entry) DEFINE(pda_ ## entry, offsetof(struct x8664_pda, entry)) |