Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1373904

[PATCH v3 5/7] x86/cpu: Move X86_BUG_ESPFIX initialization to generic_identify

From Andy Lutomirski <luto@kernel.org>
Newsgroups linux.kernel
Subject [PATCH v3 5/7] x86/cpu: Move X86_BUG_ESPFIX initialization to generic_identify
Date 2016-04-08 02:40 +0200
Message-ID <rlsCT-3LP-35@gated-at.bofh.it> (permalink)
References <rlsCT-3LP-15@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


It was in detect_nopl, which was either a mistake by me or some kind
of mis-merge.

Fixes: ff236456f072 ("x86/cpu: Move X86_BUG_ESPFIX initialization to generic_identify")
Signed-off-by: Andy Lutomirski <luto@kernel.org>
---
 arch/x86/kernel/cpu/common.c | 50 ++++++++++++++++++++++----------------------
 1 file changed, 25 insertions(+), 25 deletions(-)

diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index ceef584ae8b0..9ede8aa41f18 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -862,31 +862,6 @@ static void detect_nopl(struct cpuinfo_x86 *c)
 #else
 	set_cpu_cap(c, X86_FEATURE_NOPL);
 #endif
-
-	/*
-	 * ESPFIX is a strange bug.  All real CPUs have it.  Paravirt
-	 * systems that run Linux at CPL > 0 may or may not have the
-	 * issue, but, even if they have the issue, there's absolutely
-	 * nothing we can do about it because we can't use the real IRET
-	 * instruction.
-	 *
-	 * NB: For the time being, only 32-bit kernels support
-	 * X86_BUG_ESPFIX as such.  64-bit kernels directly choose
-	 * whether to apply espfix using paravirt hooks.  If any
-	 * non-paravirt system ever shows up that does *not* have the
-	 * ESPFIX issue, we can change this.
-	 */
-#ifdef CONFIG_X86_32
-#ifdef CONFIG_PARAVIRT
-	do {
-		extern void native_iret(void);
-		if (pv_cpu_ops.iret == native_iret)
-			set_cpu_bug(c, X86_BUG_ESPFIX);
-	} while (0);
-#else
-	set_cpu_bug(c, X86_BUG_ESPFIX);
-#endif
-#endif
 }
 
 static void detect_null_seg_behavior(struct cpuinfo_x86 *c)
@@ -952,6 +927,31 @@ static void generic_identify(struct cpuinfo_x86 *c)
 	detect_nopl(c);
 
 	detect_null_seg_behavior(c);
+
+	/*
+	 * ESPFIX is a strange bug.  All real CPUs have it.  Paravirt
+	 * systems that run Linux at CPL > 0 may or may not have the
+	 * issue, but, even if they have the issue, there's absolutely
+	 * nothing we can do about it because we can't use the real IRET
+	 * instruction.
+	 *
+	 * NB: For the time being, only 32-bit kernels support
+	 * X86_BUG_ESPFIX as such.  64-bit kernels directly choose
+	 * whether to apply espfix using paravirt hooks.  If any
+	 * non-paravirt system ever shows up that does *not* have the
+	 * ESPFIX issue, we can change this.
+	 */
+#ifdef CONFIG_X86_32
+#ifdef CONFIG_PARAVIRT
+	do {
+		extern void native_iret(void);
+		if (pv_cpu_ops.iret == native_iret)
+			set_cpu_bug(c, X86_BUG_ESPFIX);
+	} while (0);
+#else
+	set_cpu_bug(c, X86_BUG_ESPFIX);
+#endif
+#endif
 }
 
 static void x86_init_cache_qos(struct cpuinfo_x86 *c)
-- 
2.5.5

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v3 0/7] x86: Pile o' FS/GS changes Andy Lutomirski <luto@kernel.org> - 2016-04-08 02:40 +0200
  [PATCH v3 1/7] selftests/x86: Test the FSBASE/GSBASE API and context switching Andy Lutomirski <luto@kernel.org> - 2016-04-08 02:40 +0200
    [tip:x86/asm] selftests/x86: Test the FSBASE/GSBASE API and context  switching tip-bot for Andy Lutomirski <tipbot@zytor.com> - 2016-04-13 13:40 +0200
  [PATCH v3 5/7] x86/cpu: Move X86_BUG_ESPFIX initialization to generic_identify Andy Lutomirski <luto@kernel.org> - 2016-04-08 02:40 +0200
    [tip:x86/asm] x86/cpu: Move X86_BUG_ESPFIX initialization to  generic_identify() tip-bot for Andy Lutomirski <tipbot@zytor.com> - 2016-04-13 13:40 +0200
  [PATCH v3 7/7] x86/entry: Make gs_change a local label Andy Lutomirski <luto@kernel.org> - 2016-04-08 02:40 +0200
    [tip:x86/asm] x86/entry/64: Make gs_change a local label tip-bot for Borislav Petkov <tipbot@zytor.com> - 2016-04-13 13:40 +0200
  Re: [PATCH v3 6/7] x86/cpu: Add Erratum 88 detection on AMD Andy Lutomirski <luto@amacapital.net> - 2016-04-08 03:50 +0200
    Re: [PATCH v3 6/7] x86/cpu: Add Erratum 88 detection on AMD Borislav Petkov <bp@alien8.de> - 2016-04-08 12:00 +0200
  Re: [PATCH v3 2/7] x86/arch_prctl: Fix ARCH_GET_FS and ARCH_GET_GS Ingo Molnar <mingo@kernel.org> - 2016-04-08 09:20 +0200
    Re: [PATCH v3 2/7] x86/arch_prctl: Fix ARCH_GET_FS and ARCH_GET_GS Dmitry Safonov <0x7f454c46@gmail.com> - 2016-04-08 11:40 +0200
    Re: [PATCH v3 2/7] x86/arch_prctl: Fix ARCH_GET_FS and ARCH_GET_GS Andy Lutomirski <luto@amacapital.net> - 2016-04-08 18:10 +0200
  Re: [PATCH v3 0/7] x86: Pile o' FS/GS changes Borislav Petkov <bp@alien8.de> - 2016-04-08 12:40 +0200
  Re: [PATCH v3 0/7] x86: Pile o' FS/GS changes Borislav Petkov <bp@alien8.de> - 2016-04-08 12:50 +0200

csiph-web