提交 0aa97fb2 编写于 作者: R Roland McGrath 提交者: Ingo Molnar

x86 vDSO: ia32_sysenter_target

This harmonizes the name for the entry point from the 32-bit sysenter
instruction across 32-bit and 64-bit kernels.
Signed-off-by: NRoland McGrath <roland@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
Signed-off-by: NIngo Molnar <mingo@elte.hu>
Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
上级 f288f32d
...@@ -283,7 +283,7 @@ END(resume_kernel) ...@@ -283,7 +283,7 @@ END(resume_kernel)
the vsyscall page. See vsyscall-sysentry.S, which defines the symbol. */ the vsyscall page. See vsyscall-sysentry.S, which defines the symbol. */
# sysenter call handler stub # sysenter call handler stub
ENTRY(sysenter_entry) ENTRY(ia32_sysenter_target)
CFI_STARTPROC simple CFI_STARTPROC simple
CFI_SIGNAL_FRAME CFI_SIGNAL_FRAME
CFI_DEF_CFA esp, 0 CFI_DEF_CFA esp, 0
...@@ -360,7 +360,7 @@ sysenter_past_esp: ...@@ -360,7 +360,7 @@ sysenter_past_esp:
.align 4 .align 4
.long 1b,2b .long 1b,2b
.popsection .popsection
ENDPROC(sysenter_entry) ENDPROC(ia32_sysenter_target)
# system call handler stub # system call handler stub
ENTRY(system_call) ENTRY(system_call)
...@@ -768,7 +768,7 @@ label: \ ...@@ -768,7 +768,7 @@ label: \
KPROBE_ENTRY(debug) KPROBE_ENTRY(debug)
RING0_INT_FRAME RING0_INT_FRAME
cmpl $sysenter_entry,(%esp) cmpl $ia32_sysenter_target,(%esp)
jne debug_stack_correct jne debug_stack_correct
FIX_STACK(12, debug_stack_correct, debug_esp_fix_insn) FIX_STACK(12, debug_stack_correct, debug_esp_fix_insn)
debug_stack_correct: debug_stack_correct:
...@@ -799,7 +799,7 @@ KPROBE_ENTRY(nmi) ...@@ -799,7 +799,7 @@ KPROBE_ENTRY(nmi)
popl %eax popl %eax
CFI_ADJUST_CFA_OFFSET -4 CFI_ADJUST_CFA_OFFSET -4
je nmi_espfix_stack je nmi_espfix_stack
cmpl $sysenter_entry,(%esp) cmpl $ia32_sysenter_target,(%esp)
je nmi_stack_fixup je nmi_stack_fixup
pushl %eax pushl %eax
CFI_ADJUST_CFA_OFFSET 4 CFI_ADJUST_CFA_OFFSET 4
...@@ -812,7 +812,7 @@ KPROBE_ENTRY(nmi) ...@@ -812,7 +812,7 @@ KPROBE_ENTRY(nmi)
popl %eax popl %eax
CFI_ADJUST_CFA_OFFSET -4 CFI_ADJUST_CFA_OFFSET -4
jae nmi_stack_correct jae nmi_stack_correct
cmpl $sysenter_entry,12(%esp) cmpl $ia32_sysenter_target,12(%esp)
je nmi_debug_stack_check je nmi_debug_stack_check
nmi_stack_correct: nmi_stack_correct:
/* We have a RING0_INT_FRAME here */ /* We have a RING0_INT_FRAME here */
......
...@@ -54,7 +54,7 @@ static int __init vdso_setup(char *s) ...@@ -54,7 +54,7 @@ static int __init vdso_setup(char *s)
__setup("vdso=", vdso_setup); __setup("vdso=", vdso_setup);
extern asmlinkage void sysenter_entry(void); extern asmlinkage void ia32_sysenter_target(void);
static __init void reloc_symtab(Elf32_Ehdr *ehdr, static __init void reloc_symtab(Elf32_Ehdr *ehdr,
unsigned offset, unsigned size) unsigned offset, unsigned size)
...@@ -187,7 +187,7 @@ void enable_sep_cpu(void) ...@@ -187,7 +187,7 @@ void enable_sep_cpu(void)
tss->x86_tss.esp1 = sizeof(struct tss_struct) + (unsigned long) tss; tss->x86_tss.esp1 = sizeof(struct tss_struct) + (unsigned long) tss;
wrmsr(MSR_IA32_SYSENTER_CS, __KERNEL_CS, 0); wrmsr(MSR_IA32_SYSENTER_CS, __KERNEL_CS, 0);
wrmsr(MSR_IA32_SYSENTER_ESP, tss->x86_tss.esp1, 0); wrmsr(MSR_IA32_SYSENTER_ESP, tss->x86_tss.esp1, 0);
wrmsr(MSR_IA32_SYSENTER_EIP, (unsigned long) sysenter_entry, 0); wrmsr(MSR_IA32_SYSENTER_EIP, (unsigned long) ia32_sysenter_target, 0);
put_cpu(); put_cpu();
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册