[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen stable-4.8] x86: Fix "x86: further CPUID handling adjustments"
commit cc0bb3b484717f02e3b22de69d5d7cd518063f9e Author: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> AuthorDate: Tue May 29 10:02:34 2018 +0200 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Tue May 29 10:02:34 2018 +0200 x86: Fix "x86: further CPUID handling adjustments" c/s 62b187969 "x86: further CPUID handling adjustments" make some adjustments. However, it breaks levelling of guests, making it impossible for the toolstack to hide STIBP or IBPB from guests on hardware with up-to-date microcode. The dom0 issue referenced in the commit message was fixed by the hunk adjusting the zeroing alone. STIBP and IBPB don't need (and indeed, must not be for levelling purposes) OR'd into the leaf. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> --- xen/arch/x86/hvm/hvm.c | 3 --- xen/arch/x86/traps.c | 3 --- 2 files changed, 6 deletions(-) diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c index 4ffa30c1cc..b989ac4990 100644 --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -3586,8 +3586,6 @@ void hvm_cpuid(unsigned int input, unsigned int *eax, unsigned int *ebx, special_features[FEATURESET_7b0]); *ecx &= hvm_featureset[FEATURESET_7c0]; - - *edx |= cpufeat_mask(X86_FEATURE_STIBP); *edx &= hvm_featureset[FEATURESET_7d0]; /* Don't expose HAP-only features to non-hap guests. */ @@ -3761,7 +3759,6 @@ void hvm_cpuid(unsigned int input, unsigned int *eax, unsigned int *ebx, hvm_cpuid(0x80000001, NULL, NULL, NULL, &_edx); *eax |= (_edx & cpufeat_mask(X86_FEATURE_LM) ? vaddr_bits : 32) << 8; - *ebx |= cpufeat_mask(X86_FEATURE_IBPB); *ebx &= hvm_featureset[FEATURESET_e8b]; break; } diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c index 508c18e1fd..f950e8d872 100644 --- a/xen/arch/x86/traps.c +++ b/xen/arch/x86/traps.c @@ -1155,8 +1155,6 @@ void pv_cpuid(struct cpu_user_regs *regs) special_features[FEATURESET_7b0]); c &= pv_featureset[FEATURESET_7c0]; - - d |= cpufeat_mask(X86_FEATURE_STIBP); d &= pv_featureset[FEATURESET_7d0]; if ( !is_pvh_domain(currd) ) @@ -1271,7 +1269,6 @@ void pv_cpuid(struct cpu_user_regs *regs) case 0x80000008: a = paddr_bits | (vaddr_bits << 8); - b |= cpufeat_mask(X86_FEATURE_IBPB); b &= pv_featureset[FEATURESET_e8b]; break; -- generated by git-patchbot for /home/xen/git/xen.git#stable-4.8 _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |