Commit-ID: a8f76ae41cd633ac00be1b3019b1eb4741be3828 Gitweb: https://git.kernel.org/tip/a8f76ae41cd633ac00be1b3019b1eb4741be3828 Author: Tim Chen <tim.c.c...@linux.intel.com> AuthorDate: Sun, 25 Nov 2018 19:33:32 +0100 Committer: Thomas Gleixner <t...@linutronix.de> CommitDate: Wed, 28 Nov 2018 11:57:05 +0100
x86/speculation: Move STIPB/IBPB string conditionals out of cpu_show_common() The Spectre V2 printout in cpu_show_common() handles conditionals for the various mitigation methods directly in the sprintf() argument list. That's hard to read and will become unreadable if more complex decisions need to be made for a particular method. Move the conditionals for STIBP and IBPB string selection into helper functions, so they can be extended later on. Signed-off-by: Tim Chen <tim.c.c...@linux.intel.com> Signed-off-by: Thomas Gleixner <t...@linutronix.de> Reviewed-by: Ingo Molnar <mi...@kernel.org> Cc: Peter Zijlstra <pet...@infradead.org> Cc: Andy Lutomirski <l...@kernel.org> Cc: Linus Torvalds <torva...@linux-foundation.org> Cc: Jiri Kosina <jkos...@suse.cz> Cc: Tom Lendacky <thomas.lenda...@amd.com> Cc: Josh Poimboeuf <jpoim...@redhat.com> Cc: Andrea Arcangeli <aarca...@redhat.com> Cc: David Woodhouse <d...@amazon.co.uk> Cc: Andi Kleen <a...@linux.intel.com> Cc: Dave Hansen <dave.han...@intel.com> Cc: Casey Schaufler <casey.schauf...@intel.com> Cc: Asit Mallick <asit.k.mall...@intel.com> Cc: Arjan van de Ven <ar...@linux.intel.com> Cc: Jon Masters <j...@redhat.com> Cc: Waiman Long <longman9...@gmail.com> Cc: Greg KH <gre...@linuxfoundation.org> Cc: Dave Stewart <david.c.stew...@intel.com> Cc: Kees Cook <keesc...@chromium.org> Cc: sta...@vger.kernel.org Link: https://lkml.kernel.org/r/20181125185003.874479...@linutronix.de --- arch/x86/kernel/cpu/bugs.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index b52a48966e01..a1502bce9eb8 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -844,6 +844,22 @@ static ssize_t l1tf_show_state(char *buf) } #endif +static char *stibp_state(void) +{ + if (x86_spec_ctrl_base & SPEC_CTRL_STIBP) + return ", STIBP"; + else + return ""; +} + +static char *ibpb_state(void) +{ + if (boot_cpu_has(X86_FEATURE_USE_IBPB)) + return ", IBPB"; + else + return ""; +} + static ssize_t cpu_show_common(struct device *dev, struct device_attribute *attr, char *buf, unsigned int bug) { @@ -865,9 +881,9 @@ static ssize_t cpu_show_common(struct device *dev, struct device_attribute *attr case X86_BUG_SPECTRE_V2: return sprintf(buf, "%s%s%s%s%s%s\n", spectre_v2_strings[spectre_v2_enabled], - boot_cpu_has(X86_FEATURE_USE_IBPB) ? ", IBPB" : "", + ibpb_state(), boot_cpu_has(X86_FEATURE_USE_IBRS_FW) ? ", IBRS_FW" : "", - (x86_spec_ctrl_base & SPEC_CTRL_STIBP) ? ", STIBP" : "", + stibp_state(), boot_cpu_has(X86_FEATURE_RSB_CTXSW) ? ", RSB filling" : "", spectre_v2_module_string());