Patch "x86/speculation: Clean up various Spectre related details" has been added to the 4.14-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
x86/speculation: Clean up various Spectre related details
to the 4.14-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
x86-speculation-clean-up-various-spectre-related-details.patch
and it can be found in the queue-4.14 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
21e433bdb95bdf3aa48226fd3d33af608437f293Mon Sep 17 00:00:00 2001
From: Ingo Molnar <[email protected]>
Date: Tue, 13 Feb 2018 09:03:08 +0100
Subject: x86/speculation: Clean up various Spectre related details
From: Ingo Molnar <[email protected]>
commit 21e433bdb95bdf3aa48226fd3d33af608437f293 upstream.
Harmonize all the Spectre messages so that a:
dmesg | grep -i spectre
... gives us most Spectre related kernel boot messages.
Also fix a few other details:
- clarify a comment about firmware speculation control
- s/KPTI/PTI
- remove various line-breaks that made the code uglier
--- arch/x86/kernel/cpu/bugs.c | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-)
arch/x86/kernel/cpu/bugs.c +11 -17
@@ -162,8 +162,7 @@ static enum spectre_v2_mitigation_cmd __if (cmdline_find_option_bool (boot_command_line,"nospectre_v2" ))return SPECTRE_V2_CMD_NONE ;else { - ret =cmdline_find_option (boot_command_line,"spectre_v2" , arg, -sizeof (arg)); + ret =cmdline_find_option (boot_command_line,"spectre_v2" , arg,sizeof (arg));if (ret <0 )return SPECTRE_V2_CMD_AUTO ;
@@ -175,8 +174,7 @@ static enum spectre_v2_mitigation_cmd __ }if (i >=ARRAY_SIZE (mitigation_options)) { -pr_err ("unknown option (%s). Switching to AUTO select\n" , - mitigation_options[i].option); +pr_err ("unknown option (%s). Switching to AUTO select\n" , mitigation_options[i].option);return SPECTRE_V2_CMD_AUTO ; } }
@@ -185,8 +183,7 @@ static enum spectre_v2_mitigation_cmd __ cmd == SPECTRE_V2_CMD_RETPOLINE_AMD || cmd == SPECTRE_V2_CMD_RETPOLINE_GENERIC) && !IS_ENABLED(CONFIG_RETPOLINE)) { -pr_err ("%s selected but not compiled in. Switching to AUTO select\n" , - mitigation_options[i].option); +pr_err ("%s selected but not compiled in. Switching to AUTO select\n" , mitigation_options[i].option);return SPECTRE_V2_CMD_AUTO ; }
@@ -256,14 +253,14 @@ static void __init spectre_v2_select_mit goto retpoline_auto;break ; } -pr_err ("kernel not compiled with retpoline; no mitigation available!" ); +pr_err ("Spectre mitigation: kernel not compiled with retpoline; no mitigation available!" );return ; retpoline_auto:if (boot_cpu_data.x86_vendor ==X86_VENDOR_AMD ) { retpoline_amd:if (!boot_cpu_has (X86_FEATURE_LFENCE_RDTSC )) { -pr_err ("LFENCE not serializing. Switching to generic retpoline\n" ); +pr_err ("Spectre mitigation: LFENCE not serializing, switching to generic retpoline\n" ); goto retpoline_generic; } mode = retp_compiler() ? SPECTRE_V2_RETPOLINE_AMD :
@@ -281,7 +278,7 @@ retpoline_auto:pr_info ("%s\n" , spectre_v2_strings[mode]);/* -* If neither SMEP or KPTI are available, there is a risk of +* If neither SMEP nor PTI are available, there is a risk of * hitting userspace addresses in the RSB after a context switch * from a shallow call stack to a deeper one. To prevent this fill * the entire RSB, even when using IBRS.
@@ -295,21 +292,20 @@ retpoline_auto:if ((!boot_cpu_has (X86_FEATURE_PTI ) && !boot_cpu_has (X86_FEATURE_SMEP )) ||is_skylake_era ()) {setup_force_cpu_cap (X86_FEATURE_RSB_CTXSW ); -pr_info ("Filling RSB on context switch\n" ); +pr_info ("Spectre v2 mitigation: Filling RSB on context switch\n" ); }/* Initialize Indirect Branch Prediction Barrier if supported */ if (boot_cpu_has (X86_FEATURE_IBPB )) {setup_force_cpu_cap (X86_FEATURE_USE_IBPB ); -pr_info ("Enabling Indirect Branch Prediction Barrier\n" ); +pr_info ("Spectre v2 mitigation: Enabling Indirect Branch Prediction Barrier\n" ); } }#undef pr_fmt#ifdef CONFIG_SYSFS -ssize_t cpu_show_meltdown (struct device *dev, -struct device_attribute *attr,char *buf) +ssize_t cpu_show_meltdown (struct device *dev,struct device_attribute *attr,char *buf) {if (!boot_cpu_has_bug (X86_BUG_CPU_MELTDOWN ))return sprintf (buf,"Not affected\n" );
@@ -318,16 +314,14 @@ ssize_t cpu_show_meltdown(struct devicereturn sprintf (buf,"Vulnerable\n" ); } -ssize_t cpu_show_spectre_v1 (struct device *dev, -struct device_attribute *attr,char *buf) +ssize_t cpu_show_spectre_v1 (struct device *dev,struct device_attribute *attr,char *buf) {if (!boot_cpu_has_bug (X86_BUG_SPECTRE_V1 ))return sprintf (buf,"Not affected\n" );return sprintf (buf,"Mitigation: __user pointer sanitization\n" ); } -ssize_t cpu_show_spectre_v2 (struct device *dev, -struct device_attribute *attr,char *buf) +ssize_t cpu_show_spectre_v2 (struct device *dev,struct device_attribute *attr,char *buf) {if (!boot_cpu_has_bug (X86_BUG_SPECTRE_V2 ))return sprintf (buf,"Not affected\n" );
Patches currently in stable-queue which might be from [email protected] are
queue-4.14/x86-gpu-add-cfl-to-early-quirks.patch queue-4.14/kvm-nvmx-set-the-cpu_based_use_msr_bitmaps-if-we-have-a-valid-l02-msr-bitmap.patch queue-4.14/x86-nvmx-properly-set-spec_ctrl-and-pred_cmd-before-merging-msrs.patch queue-4.14/x86-speculation-update-speculation-control-microcode-blacklist.patch queue-4.14/x86-speculation-correct-speculation-control-microcode-blacklist-again.patch queue-4.14/x86-entry-64-clear-extra-registers-beyond-syscall-arguments-to-reduce-speculation-attack-surface.patch queue-4.14/kvm-x86-reduce-retpoline-performance-impact-in-slot_handle_level_range-by-always-inlining-iterator-helper-methods.patch queue-4.14/x86-mm-pti-fix-pti-comment-in-entry_syscall_64.patch queue-4.14/x86-speculation-clean-up-various-spectre-related-details.patch queue-4.14/x86-kexec-make-kexec-mostly-work-in-5-level-paging-mode.patch queue-4.14/revert-x86-speculation-simplify-indirect_branch_prediction_barrier.patch queue-4.14/x86-entry-64-compat-clear-registers-for-compat-syscalls-to-reduce-speculation-attack-surface.patch