summaryrefslogtreecommitdiffstats
path: root/arch/m68k/emu/nfcon.c
diff options
context:
space:
mode:
authorDr. David Alan Gilbert <dgilbert@redhat.com>2022-08-24 05:30:56 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2022-09-22 23:04:19 +0200
commita1020a25e69755a8a1a37735d674b91d6f02939f (patch)
treef7cb4ddafd6f1c74fdada1dba7341ba023435e75 /arch/m68k/emu/nfcon.c
parentKVM: x86: Reinstate kvm_vcpu_arch.guest_supported_xcr0 (diff)
downloadlinux-a1020a25e69755a8a1a37735d674b91d6f02939f.tar.xz
linux-a1020a25e69755a8a1a37735d674b91d6f02939f.zip
KVM: x86: Always enable legacy FP/SSE in allowed user XFEATURES
Allow FP and SSE state to be saved and restored via KVM_{G,SET}_XSAVE on XSAVE-capable hosts even if their bits are not exposed to the guest via XCR0. Failing to allow FP+SSE first showed up as a QEMU live migration failure, where migrating a VM from a pre-XSAVE host, e.g. Nehalem, to an XSAVE host failed due to KVM rejecting KVM_SET_XSAVE. However, the bug also causes problems even when migrating between XSAVE-capable hosts as KVM_GET_SAVE won't set any bits in user_xfeatures if XSAVE isn't exposed to the guest, i.e. KVM will fail to actually migrate FP+SSE. Because KVM_{G,S}ET_XSAVE are designed to allowing migrating between hosts with and without XSAVE, KVM_GET_XSAVE on a non-XSAVE (by way of fpu_copy_guest_fpstate_to_uabi()) always sets the FP+SSE bits in the header so that KVM_SET_XSAVE will work even if the new host supports XSAVE. Fixes: ad856280ddea ("x86/kvm/fpu: Limit guest user_xfeatures to supported bits of XCR0") bz: https://bugzilla.redhat.com/show_bug.cgi?id=2079311 Cc: stable@vger.kernel.org Cc: Leonardo Bras <leobras@redhat.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> [sean: add comment, massage changelog] Signed-off-by: Sean Christopherson <seanjc@google.com> Message-Id: <20220824033057.3576315-3-seanjc@google.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/m68k/emu/nfcon.c')
0 files changed, 0 insertions, 0 deletions