summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2017-02-04 21:07:54 +0100
committerLinus Torvalds <torvalds@linux-foundation.org>2017-02-04 21:07:54 +0100
commit24bc5fe716855e5e608c515340b3ceacfb143bcc (patch)
tree4ed88464bea46a4c477919d7b88300c225dc2f13 /arch
parentMerge tag 'char-misc-4.10-rc7' of git://git.kernel.org/pub/scm/linux/kernel/g... (diff)
parentKVM: x86: do not save guest-unsupported XSAVE state (diff)
downloadlinux-24bc5fe716855e5e608c515340b3ceacfb143bcc.tar.xz
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
Diffstat (limited to 'arch')
-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;
/*