mirror of https://gitee.com/openkylin/linux.git
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: 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>
This commit is contained in:
parent
f288f32dc5
commit
0aa97fb226
|
@ -283,7 +283,7 @@ END(resume_kernel)
|
|||
the vsyscall page. See vsyscall-sysentry.S, which defines the symbol. */
|
||||
|
||||
# sysenter call handler stub
|
||||
ENTRY(sysenter_entry)
|
||||
ENTRY(ia32_sysenter_target)
|
||||
CFI_STARTPROC simple
|
||||
CFI_SIGNAL_FRAME
|
||||
CFI_DEF_CFA esp, 0
|
||||
|
@ -360,7 +360,7 @@ sysenter_past_esp:
|
|||
.align 4
|
||||
.long 1b,2b
|
||||
.popsection
|
||||
ENDPROC(sysenter_entry)
|
||||
ENDPROC(ia32_sysenter_target)
|
||||
|
||||
# system call handler stub
|
||||
ENTRY(system_call)
|
||||
|
@ -768,7 +768,7 @@ label: \
|
|||
|
||||
KPROBE_ENTRY(debug)
|
||||
RING0_INT_FRAME
|
||||
cmpl $sysenter_entry,(%esp)
|
||||
cmpl $ia32_sysenter_target,(%esp)
|
||||
jne debug_stack_correct
|
||||
FIX_STACK(12, debug_stack_correct, debug_esp_fix_insn)
|
||||
debug_stack_correct:
|
||||
|
@ -799,7 +799,7 @@ KPROBE_ENTRY(nmi)
|
|||
popl %eax
|
||||
CFI_ADJUST_CFA_OFFSET -4
|
||||
je nmi_espfix_stack
|
||||
cmpl $sysenter_entry,(%esp)
|
||||
cmpl $ia32_sysenter_target,(%esp)
|
||||
je nmi_stack_fixup
|
||||
pushl %eax
|
||||
CFI_ADJUST_CFA_OFFSET 4
|
||||
|
@ -812,7 +812,7 @@ KPROBE_ENTRY(nmi)
|
|||
popl %eax
|
||||
CFI_ADJUST_CFA_OFFSET -4
|
||||
jae nmi_stack_correct
|
||||
cmpl $sysenter_entry,12(%esp)
|
||||
cmpl $ia32_sysenter_target,12(%esp)
|
||||
je nmi_debug_stack_check
|
||||
nmi_stack_correct:
|
||||
/* We have a RING0_INT_FRAME here */
|
||||
|
|
|
@ -54,7 +54,7 @@ static int __init vdso_setup(char *s)
|
|||
|
||||
__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,
|
||||
unsigned offset, unsigned size)
|
||||
|
@ -187,7 +187,7 @@ void enable_sep_cpu(void)
|
|||
tss->x86_tss.esp1 = sizeof(struct tss_struct) + (unsigned long) tss;
|
||||
wrmsr(MSR_IA32_SYSENTER_CS, __KERNEL_CS, 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();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue