FAILED: patch "[PATCH] x86/speculation: PR_SPEC_FORCE_DISABLE enforcement for" failed to apply to 4.19-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 4.19-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 4d8df8cbb9156b0a0ab3f802b80cb5db57acc0bf Mon Sep 17 00:00:00 2001
From: Anthony Steinhauser <[email protected]>
Date: Sun, 7 Jun 2020 05:44:19 -0700
Subject: [PATCH] x86/speculation: PR_SPEC_FORCE_DISABLE enforcement for
indirect branches.
Currently, it is possible to enable indirect branch speculation even after it was force-disabled using the PR_SPEC_FORCE_DISABLE option. Moreover, the PR_GET_SPECULATION_CTRL command gives afterwards an incorrect result (force-disabled when it is in fact enabled). This also is inconsistent vs. STIBP and the documention which cleary states that PR_SPEC_FORCE_DISABLE cannot be undone.
Fix this by actually enforcing force-disabled indirect branch speculation. PR_SPEC_ENABLE called after PR_SPEC_FORCE_DISABLE now fails with -EPERM as described in the documentation.
arch/x86/kernel/cpu/bugs.c +5 -2
@@ -1175,11 +1175,14 @@ static int ib_prctl_set(struct task_struct *task, unsigned long ctrl)return 0 ;/* * Indirect branch speculation is always disabled in strict -* mode. +* mode. It can neither be enabled if it was force-disabled +* by a previous prctl call. +*/ if (spectre_v2_user_ibpb ==SPECTRE_V2_USER_STRICT || spectre_v2_user_stibp ==SPECTRE_V2_USER_STRICT || - spectre_v2_user_stibp ==SPECTRE_V2_USER_STRICT_PREFERRED ) + spectre_v2_user_stibp ==SPECTRE_V2_USER_STRICT_PREFERRED || +task_spec_ib_force_disable (task))return -EPERM ;task_clear_spec_ib_disable (task);task_update_spec_tif (task);
Sasha Levin
maintainerQuoted 25 lines · On Mon, Jun 15, 2020 at 03:33:55PM +0200, [email protected] wrote:
The patch below does not apply to the 4.19-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From
4d8df8cbb9156b0a0ab3f802b80cb5db57acc0bfMon Sep 17 00:00:00 2001
From: Anthony Steinhauser <[email protected]>
Date: Sun, 7 Jun 2020 05:44:19 -0700
Subject: [PATCH] x86/speculation:PR_SPEC_FORCE_DISABLEenforcement for indirect branches.Currently, it is possible to enable indirect branch speculation even after it was force-disabled using the
PR_SPEC_FORCE_DISABLEoption. Moreover, thePR_GET_SPECULATION_CTRLcommand gives afterwards an incorrect result (force-disabled when it is in fact enabled). This also is inconsistent vs. STIBP and the documention which cleary states thatPR_SPEC_FORCE_DISABLEcannot be undone.
Quoted 8 lines
Fix this by actually enforcing force-disabled indirect branch speculation.
PR_SPEC_ENABLEcalled afterPR_SPEC_FORCE_DISABLEnow fails with-EPERMas described in the documentation.Fixes 9137bb27e60e ("x86/speculation: Add prctl() control for indirect branch speculation")Signed-off-by Anthony Steinhauser <[email protected]>Signed-off-by Thomas Gleixner <[email protected]>
This patch now applies fine to all branches after we resolved the issues with the other IPBP patch.
Signature · 2 lines
Thanks, Sasha