x86/asm/entry: Untangle 'ia32_sysenter_target' into two entry points: entry_SYSENTER_32 and entry_SYSENTER_compat

So the SYSENTER instruction is pretty quirky and it has different behavior
depending on bitness and CPU maker.

Yet we create a false sense of coherency by naming it 'ia32_sysenter_target'
in both of the cases.

Split the name into its two uses:

	ia32_sysenter_target (32)    -> entry_SYSENTER_32
	ia32_sysenter_target (64)    -> entry_SYSENTER_compat

As per the generic naming scheme for x86 system call entry points:

	entry_MNEMONIC_qualifier

where 'qualifier' is one of _32, _64 or _compat.

Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
Ingo Molnar
2015-06-08 08:33:56 +02:00
parent 2cd23553b4
commit 4c8cd0c50d
5 changed files with 12 additions and 11 deletions

View File

@@ -307,7 +307,7 @@ END(resume_kernel)
the vsyscall page. See vsyscall-sysentry.S, which defines the symbol. */
# sysenter call handler stub
ENTRY(ia32_sysenter_target)
ENTRY(entry_SYSENTER_32)
movl TSS_sysenter_sp0(%esp),%esp
sysenter_past_esp:
/*
@@ -412,7 +412,7 @@ sysexit_audit:
.popsection
_ASM_EXTABLE(1b,2b)
PTGS_TO_GS_EX
ENDPROC(ia32_sysenter_target)
ENDPROC(entry_SYSENTER_32)
# system call handler stub
ENTRY(system_call)
@@ -1135,7 +1135,7 @@ END(page_fault)
ENTRY(debug)
ASM_CLAC
cmpl $ia32_sysenter_target,(%esp)
cmpl $entry_SYSENTER_32,(%esp)
jne debug_stack_correct
FIX_STACK 12, debug_stack_correct, debug_esp_fix_insn
debug_stack_correct:
@@ -1165,7 +1165,7 @@ ENTRY(nmi)
popl %eax
je nmi_espfix_stack
#endif
cmpl $ia32_sysenter_target,(%esp)
cmpl $entry_SYSENTER_32,(%esp)
je nmi_stack_fixup
pushl %eax
movl %esp,%eax
@@ -1176,7 +1176,7 @@ ENTRY(nmi)
cmpl $(THREAD_SIZE-20),%eax
popl %eax
jae nmi_stack_correct
cmpl $ia32_sysenter_target,12(%esp)
cmpl $entry_SYSENTER_32,12(%esp)
je nmi_debug_stack_check
nmi_stack_correct:
pushl %eax

View File

@@ -57,7 +57,7 @@ ENDPROC(native_usergs_sysret32)
* path below. We set up a complete hardware stack frame to share code
* with the int 0x80 path.
*/
ENTRY(ia32_sysenter_target)
ENTRY(entry_SYSENTER_compat)
/*
* Interrupts are off on entry.
* We do not frame this tiny irq-off block with TRACE_IRQS_OFF/ON,
@@ -256,7 +256,7 @@ sysenter_tracesys:
RESTORE_EXTRA_REGS
jmp sysenter_do_call
ENDPROC(ia32_sysenter_target)
ENDPROC(entry_SYSENTER_compat)
/*
* 32-bit SYSCALL instruction entry.