On 1/4/22 20:46, Sean Christopherson wrote:
On Wed, Dec 29, 2021, Yang Zhong wrote:
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index bdf89c28d2ce..76e1941db223 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -4296,6 +4296,11 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
else
r = 0;
break;
+ case KVM_CAP_XSAVE2:
+ r = kvm->vcpus[0]->arch.guest_fpu.uabi_size;
a) This does not compile against kvm/queue.
arch/x86/kvm/x86.c: In function ‘kvm_vm_ioctl_check_extension’:
arch/x86/kvm/x86.c:4317:24: error: ‘struct kvm’ has no member named ‘vcpus’
4317 | r = kvm->vcpus[0]->arch.guest_fpu.uabi_size;
b) vcpu0 is not guaranteed to be non-NULL at this point.
Yang, you can post an incremental patch for this. You can use the
highest bit of the guest-permitted xcr0 (i.e. the OR of KVM's supported
XCR0 an the guest-permitted dynamic features) and pass it to cpuid(0xD).
Paolo