[xen stable-4.10] x86/CPUID: don't override tool stack decision to hide STIBP

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[xen stable-4.10] x86/CPUID: don't override tool stack decision to hide STIBP

patchbot
commit de578bc4c30b112f7651b40e333a0521a301f449
Author:     Jan Beulich <[hidden email]>
AuthorDate: Wed Jul 4 12:27:28 2018 +0200
Commit:     Jan Beulich <[hidden email]>
CommitDate: Wed Jul 4 12:27:28 2018 +0200

    x86/CPUID: don't override tool stack decision to hide STIBP
   
    Other than in the feature sets, where we indeed want to offer the
    feature even if not enumerated on hardware, we shouldn't dictate the
    feature being available if tool stack or host admin have decided to not
    expose it (for whatever [questionable?] reason). That feature set side
    override is sufficient to achieve the intended guest side safety
    property (in offering - by default - STIBP independent of actual
    availability in hardware).
   
    Signed-off-by: Jan Beulich <[hidden email]>
    Reviewed-by: Andrew Cooper <[hidden email]>
    master commit: 06f542f8f2e446c01bd0edab51e9450af7f6e05b
    master date: 2018-05-29 12:39:24 +0200
---
 xen/arch/x86/cpuid.c                        | 8 --------
 xen/include/public/arch-x86/cpufeatureset.h | 2 +-
 2 files changed, 1 insertion(+), 9 deletions(-)

diff --git a/xen/arch/x86/cpuid.c b/xen/arch/x86/cpuid.c
index 6a710b7770..c2d5226a13 100644
--- a/xen/arch/x86/cpuid.c
+++ b/xen/arch/x86/cpuid.c
@@ -620,14 +620,6 @@ void recalculate_cpuid_policy(struct domain *d)
     recalculate_xstate(p);
     recalculate_misc(p);
 
-    /*
-     * Override STIBP to match IBRS.  Guests can safely use STIBP
-     * functionality on non-HT hardware, but can't necesserily protect
-     * themselves from SP2/Spectre/Branch Target Injection if STIBP is hidden
-     * on HT-capable hardware.
-     */
-    p->feat.stibp = p->feat.ibrsb;
-
     for ( i = 0; i < ARRAY_SIZE(p->cache.raw); ++i )
     {
         if ( p->cache.subleaf[i].type >= 1 &&
diff --git a/xen/include/public/arch-x86/cpufeatureset.h b/xen/include/public/arch-x86/cpufeatureset.h
index c721c125ab..f1a5ed93e0 100644
--- a/xen/include/public/arch-x86/cpufeatureset.h
+++ b/xen/include/public/arch-x86/cpufeatureset.h
@@ -243,7 +243,7 @@ XEN_CPUFEATURE(IBPB,          8*32+12) /*A  IBPB support only (no IBRS, used by
 XEN_CPUFEATURE(AVX512_4VNNIW, 9*32+ 2) /*A  AVX512 Neural Network Instructions */
 XEN_CPUFEATURE(AVX512_4FMAPS, 9*32+ 3) /*A  AVX512 Multiply Accumulation Single Precision */
 XEN_CPUFEATURE(IBRSB,         9*32+26) /*A  IBRS and IBPB support (used by Intel) */
-XEN_CPUFEATURE(STIBP,         9*32+27) /*A! STIBP */
+XEN_CPUFEATURE(STIBP,         9*32+27) /*A  STIBP */
 XEN_CPUFEATURE(ARCH_CAPS,     9*32+29) /*   IA32_ARCH_CAPABILITIES MSR */
 XEN_CPUFEATURE(SSBD,          9*32+31) /*A  MSR_SPEC_CTRL.SSBD available */
 
--
generated by git-patchbot for /home/xen/git/xen.git#stable-4.10

_______________________________________________
Xen-changelog mailing list
[hidden email]
https://lists.xenproject.org/xen-changelog