summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorRodrigo Branco <bsdaemon@google.com>2023-01-03 14:17:51 -0600
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-01-14 10:16:49 +0100
commit67e39c4f4cb318cfbbf8982ab016c649ed97edaf (patch)
treeaf77dd02e01b0af0b1b49728f418df35c8a1edce /arch
parentf13301a69ababa6c2236fb4f0393b7e914e7e1e0 (diff)
x86/bugs: Flush IBP in ib_prctl_set()
commit a664ec9158eeddd75121d39c9a0758016097fa96 upstream. We missed the window between the TIF flag update and the next reschedule. Signed-off-by: Rodrigo Branco <bsdaemon@google.com> Reviewed-by: Borislav Petkov (AMD) <bp@alien8.de> Signed-off-by: Ingo Molnar <mingo@kernel.org> Cc: <stable@vger.kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/kernel/cpu/bugs.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c
index e2e22a5740a4..a2a087a797ae 100644
--- a/arch/x86/kernel/cpu/bugs.c
+++ b/arch/x86/kernel/cpu/bugs.c
@@ -1896,6 +1896,8 @@ static int ib_prctl_set(struct task_struct *task, unsigned long ctrl)
if (ctrl == PR_SPEC_FORCE_DISABLE)
task_set_spec_ib_force_disable(task);
task_update_spec_tif(task);
+ if (task == current)
+ indirect_branch_prediction_barrier();
break;
default:
return -ERANGE;