| From: Thomas Gleixner <tglx@linutronix.de> |
| Date: Sat, 27 Jan 2018 15:45:14 +0100 |
| Subject: x86/cpu/bugs: Make retpoline module warning conditional |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| commit e383095c7fe8d218e00ec0f83e4b95ed4e627b02 upstream. |
| |
| If sysfs is disabled and RETPOLINE not defined: |
| |
| arch/x86/kernel/cpu/bugs.c:97:13: warning: ‘spectre_v2_bad_module’ defined but not used |
| [-Wunused-variable] |
| static bool spectre_v2_bad_module; |
| |
| Hide it. |
| |
| Fixes: caf7501a1b4e ("module/retpoline: Warn about missing retpoline in module") |
| Reported-by: Borislav Petkov <bp@alien8.de> |
| Signed-off-by: Thomas Gleixner <tglx@linutronix.de> |
| Cc: Andi Kleen <ak@linux.intel.com> |
| Cc: David Woodhouse <dwmw2@infradead.org> |
| [bwh: Backported to 3.16: adjust context] |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| arch/x86/kernel/cpu/bugs.c | 14 +++++++++++--- |
| 1 file changed, 11 insertions(+), 3 deletions(-) |
| |
| --- a/arch/x86/kernel/cpu/bugs.c |
| +++ b/arch/x86/kernel/cpu/bugs.c |
| @@ -156,9 +156,10 @@ static const char *spectre_v2_strings[] |
| #define pr_fmt(fmt) "Spectre V2 : " fmt |
| |
| static enum spectre_v2_mitigation spectre_v2_enabled = SPECTRE_V2_NONE; |
| -static bool spectre_v2_bad_module; |
| |
| #ifdef RETPOLINE |
| +static bool spectre_v2_bad_module; |
| + |
| bool retpoline_module_ok(bool has_retpoline) |
| { |
| if (spectre_v2_enabled == SPECTRE_V2_NONE || has_retpoline) |
| @@ -168,6 +169,13 @@ bool retpoline_module_ok(bool has_retpol |
| spectre_v2_bad_module = true; |
| return false; |
| } |
| + |
| +static inline const char *spectre_v2_module_string(void) |
| +{ |
| + return spectre_v2_bad_module ? " - vulnerable module loaded" : ""; |
| +} |
| +#else |
| +static inline const char *spectre_v2_module_string(void) { return ""; } |
| #endif |
| |
| static void __init spec2_print_if_insecure(const char *reason) |
| @@ -355,6 +363,6 @@ ssize_t cpu_show_spectre_v2(struct devic |
| return sprintf(buf, "Not affected\n"); |
| |
| return sprintf(buf, "%s%s\n", spectre_v2_strings[spectre_v2_enabled], |
| - spectre_v2_bad_module ? " - vulnerable module loaded" : ""); |
| + spectre_v2_module_string()); |
| } |
| #endif |