From: Paolo Bonzini pbonzini@redhat.com Sent: Wednesday, January 5, 2022 4:46 AM
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).
Will do, except one correction that 'OR' should be 'AND' here. 😊
Thanks Kevin