x86/entry/64: Don't compile ignore_sysret if 32-bit emulation is enabled
authorAndy Lutomirski <luto@kernel.org>
Tue, 2 Jul 2019 03:43:20 +0000 (20:43 -0700)
committerThomas Gleixner <tglx@linutronix.de>
Tue, 2 Jul 2019 06:45:20 +0000 (08:45 +0200)
It's only used if !CONFIG_IA32_EMULATION, so disable it in normal
configs.  This will save a few bytes of text and reduce confusion.

Signed-off-by: Andy Lutomirski <luto@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: "BaeChang Seok" <chang.seok.bae@intel.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: "Bae, Chang Seok" <chang.seok.bae@intel.com>
Link: https://lkml.kernel.org/r/0f7dafa72fe7194689de5ee8cfe5d83509fabcf5.1562035429.git.luto@kernel.org
arch/x86/entry/entry_64.S

index 7f9f511..54b1b04 100644 (file)
@@ -1743,11 +1743,17 @@ nmi_restore:
        iretq
 END(nmi)
 
+#ifndef CONFIG_IA32_EMULATION
+/*
+ * This handles SYSCALL from 32-bit code.  There is no way to program
+ * MSRs to fully disable 32-bit SYSCALL.
+ */
 ENTRY(ignore_sysret)
        UNWIND_HINT_EMPTY
        mov     $-ENOSYS, %eax
        sysret
 END(ignore_sysret)
+#endif
 
 ENTRY(rewind_stack_do_exit)
        UNWIND_HINT_FUNC