All of lore.kernel.org
 help / color / mirror / Atom feed
From: Josh Poimboeuf <jpoimboe@kernel.org>
To: KP Singh <kpsingh@kernel.org>
Cc: "Borislav Petkov" <bp@alien8.de>,
	linux-kernel@vger.kernel.org, pjt@google.com, evn@google.com,
	tglx@linutronix.de, mingo@redhat.com,
	dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
	peterz@infradead.org, pawan.kumar.gupta@linux.intel.com,
	kim.phillips@amd.com, alexandre.chartre@oracle.com,
	daniel.sneddon@linux.intel.com,
	"José Oliveira" <joseloliveira11@gmail.com>,
	"Rodrigo Branco" <rodrigo@kernelhacking.com>,
	"Alexandra Sandulescu" <aesa@google.com>,
	"Jim Mattson" <jmattson@google.com>,
	stable@vger.kernel.org
Subject: [PATCH] x86/bugs: Allow STIBP with IBRS
Date: Mon, 20 Feb 2023 10:27:17 -0800	[thread overview]
Message-ID: <20230220182717.uzrym2gtavlbjbxo@treble> (raw)
In-Reply-To: <CACYkzJ71xqzY6-wL+YShcL+d6ugzcdFHr6tbYWWE_ep52+RBZQ@mail.gmail.com>

IBRS is only enabled in kernel space.  Since it's not enabled in user
space, user space isn't protected from indirect branch prediction
attacks from a sibling CPU thread.

Allow STIBP to be enabled to protect against such attacks.

Fixes: 7c693f54c873 ("x86/speculation: Add spectre_v2=ibrs option to support Kernel IBRS")
Reported-by: José Oliveira <joseloliveira11@gmail.com>
Reported-by: Rodrigo Branco <rodrigo@kernelhacking.com>
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
---
 arch/x86/kernel/cpu/bugs.c | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c
index 85168740f76a..b97c0d28e573 100644
--- a/arch/x86/kernel/cpu/bugs.c
+++ b/arch/x86/kernel/cpu/bugs.c
@@ -1124,14 +1124,19 @@ spectre_v2_parse_user_cmdline(void)
 	return SPECTRE_V2_USER_CMD_AUTO;
 }
 
-static inline bool spectre_v2_in_ibrs_mode(enum spectre_v2_mitigation mode)
+static inline bool spectre_v2_in_eibrs_mode(enum spectre_v2_mitigation mode)
 {
-	return mode == SPECTRE_V2_IBRS ||
-	       mode == SPECTRE_V2_EIBRS ||
+	return mode == SPECTRE_V2_EIBRS ||
 	       mode == SPECTRE_V2_EIBRS_RETPOLINE ||
 	       mode == SPECTRE_V2_EIBRS_LFENCE;
 }
 
+static inline bool spectre_v2_in_ibrs_mode(enum spectre_v2_mitigation mode)
+{
+	return spectre_v2_in_eibrs_mode(mode) ||
+	       mode == SPECTRE_V2_IBRS;
+}
+
 static void __init
 spectre_v2_user_select_mitigation(void)
 {
@@ -1194,12 +1199,12 @@ spectre_v2_user_select_mitigation(void)
 	}
 
 	/*
-	 * If no STIBP, IBRS or enhanced IBRS is enabled, or SMT impossible,
+	 * If no STIBP, enhanced IBRS is enabled, or SMT impossible,
 	 * STIBP is not required.
 	 */
 	if (!boot_cpu_has(X86_FEATURE_STIBP) ||
 	    !smt_possible ||
-	    spectre_v2_in_ibrs_mode(spectre_v2_enabled))
+	    spectre_v2_in_eibrs_mode(spectre_v2_enabled))
 		return;
 
 	/*
@@ -2327,9 +2332,6 @@ static ssize_t mmio_stale_data_show_state(char *buf)
 
 static char *stibp_state(void)
 {
-	if (spectre_v2_in_ibrs_mode(spectre_v2_enabled))
-		return "";
-
 	switch (spectre_v2_user_stibp) {
 	case SPECTRE_V2_USER_NONE:
 		return ", STIBP: disabled";
-- 
2.39.1


  parent reply	other threads:[~2023-02-20 18:27 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-20 12:01 [PATCH RESEND] x86/speculation: Fix user-mode spectre-v2 protection with KERNEL_IBRS KP Singh
2023-02-20 12:13 ` Josh Poimboeuf
2023-02-20 12:20   ` KP Singh
2023-02-20 12:34     ` KP Singh
2023-02-20 14:31       ` Borislav Petkov
2023-02-20 15:38         ` Dave Hansen
2023-02-20 19:57         ` Andrew Cooper
2023-02-20 21:10           ` Borislav Petkov
2023-02-20 23:01             ` KP Singh
2023-02-20 23:30             ` Andrew Cooper
2023-02-20 23:45               ` KP Singh
2023-02-21 18:52                 ` KP Singh
2023-02-21 10:59               ` Borislav Petkov
2023-02-20 16:34       ` Josh Poimboeuf
2023-02-20 17:46         ` Borislav Petkov
2023-02-20 17:59           ` Josh Poimboeuf
2023-02-20 18:01             ` KP Singh
2023-02-20 18:22               ` Borislav Petkov
2023-02-20 18:44                 ` KP Singh
2023-02-20 18:51                   ` Borislav Petkov
2023-02-20 18:56                     ` KP Singh
2023-02-20 19:02                       ` Borislav Petkov
2023-02-20 19:10                         ` KP Singh
2023-02-20 18:27               ` Josh Poimboeuf [this message]
2023-02-20 18:28                 ` [PATCH] x86/bugs: Allow STIBP with IBRS kernel test robot
2023-02-20 18:33                 ` KP Singh
2023-02-20 18:59                   ` Josh Poimboeuf
2023-02-20 19:04                     ` KP Singh
2023-02-20 19:19                       ` Josh Poimboeuf
2023-02-20 18:34                 ` Borislav Petkov
2023-02-20 19:09                   ` Josh Poimboeuf
2023-02-20 19:16                     ` KP Singh
2023-02-20 19:35                       ` Josh Poimboeuf
2023-02-20 19:38                         ` KP Singh
2023-02-20 19:20                     ` Borislav Petkov
2023-02-22  1:20                     ` Pawan Gupta
2023-02-22  1:26                       ` KP Singh
2023-02-22  1:38                         ` Pawan Gupta
2023-02-27 19:59 ` [tip: x86/urgent] x86/speculation: Allow enabling STIBP with legacy IBRS tip-bot2 for KP Singh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230220182717.uzrym2gtavlbjbxo@treble \
    --to=jpoimboe@kernel.org \
    --cc=aesa@google.com \
    --cc=alexandre.chartre@oracle.com \
    --cc=bp@alien8.de \
    --cc=daniel.sneddon@linux.intel.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=evn@google.com \
    --cc=hpa@zytor.com \
    --cc=jmattson@google.com \
    --cc=joseloliveira11@gmail.com \
    --cc=kim.phillips@amd.com \
    --cc=kpsingh@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=pawan.kumar.gupta@linux.intel.com \
    --cc=peterz@infradead.org \
    --cc=pjt@google.com \
    --cc=rodrigo@kernelhacking.com \
    --cc=stable@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.