]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
x86/spectre: Fix retpoline_enabled
authorKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Thu, 1 Feb 2018 17:16:10 +0000 (12:16 -0500)
committerJack Vogel <jack.vogel@oracle.com>
Thu, 8 Feb 2018 18:15:09 +0000 (10:15 -0800)
As it will report that retpoline_enabled if IBRS is set.

Instead just figure out which mode we are in and if it
has retpoline then return true.

Orabug: 27477743
CVE: CVE-2017-5715

Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Reviewed-by: Darren Kenny <darren.kenny@oracle.com>
Reviewed-by: Pavel Tatashin <pasha.tatashin@oracle.com>
arch/x86/kernel/cpu/bugs_64.c

index 71934459267788431ee5dedd4ba7c29c51feffd6..dc062b3e559741647a4b9683189a9af31c771220 100644 (file)
@@ -121,7 +121,17 @@ void disable_retpoline(void)
 
 bool retpoline_enabled(void)
 {
-       return spectre_v2_enabled != SPECTRE_V2_NONE;
+       switch (spectre_v2_enabled) {
+       case SPECTRE_V2_RETPOLINE_MINIMAL:
+       case SPECTRE_V2_RETPOLINE_MINIMAL_AMD:
+       case SPECTRE_V2_RETPOLINE_GENERIC:
+       case SPECTRE_V2_RETPOLINE_AMD:
+               return true;
+       default:
+               break;
+       }
+
+       return false;
 }
 
 static void __init spec2_print_if_insecure(const char *reason)