summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2017-02-04 12:07:54 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2017-02-04 12:07:54 -0800
commit24bc5fe716855e5e608c515340b3ceacfb143bcc (patch)
tree4ed88464bea46a4c477919d7b88300c225dc2f13
parent412e6d3fec247b2bc83106514b0fb3b17e2eb7fe (diff)
parent00c87e9a70a17b355b81c36adedf05e84f54e10d (diff)
downloadlinux-24bc5fe716855e5e608c515340b3ceacfb143bcc.tar.gz
linux-24bc5fe716855e5e608c515340b3ceacfb143bcc.tar.bz2
linux-24bc5fe716855e5e608c515340b3ceacfb143bcc.zip
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
Pull KVM fix from Radim Krčmář: "Fix a regression that prevented migration between hosts with different XSAVE features even if the missing features were not used by the guest (for stable)" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: KVM: x86: do not save guest-unsupported XSAVE state
-rw-r--r--arch/x86/kvm/x86.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index d153be8929a6..e52c9088660f 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -3182,6 +3182,7 @@ static void fill_xsave(u8 *dest, struct kvm_vcpu *vcpu)
memcpy(dest, xsave, XSAVE_HDR_OFFSET);
/* Set XSTATE_BV */
+ xstate_bv &= vcpu->arch.guest_supported_xcr0 | XFEATURE_MASK_FPSSE;
*(u64 *)(dest + XSAVE_HDR_OFFSET) = xstate_bv;
/*