KVM: x86: return 1 unconditionally for availability of KVM_CAP_VAPIC
The two ioctls used to implement userspace-accelerated TPR, KVM_TPR_ACCESS_REPORTING and KVM_SET_VAPIC_ADDR, are available even if hardware-accelerated TPR can be used. So there is no reason not to report KVM_CAP_VAPIC. Reviewed-by: Sean Christopherson <seanjc@google.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
1e8ff29fbb
commit
8a2897853c
@ -15,7 +15,6 @@ BUILD_BUG_ON(1)
|
||||
KVM_X86_OP_NULL(hardware_enable)
|
||||
KVM_X86_OP_NULL(hardware_disable)
|
||||
KVM_X86_OP_NULL(hardware_unsetup)
|
||||
KVM_X86_OP_NULL(cpu_has_accelerated_tpr)
|
||||
KVM_X86_OP(has_emulated_msr)
|
||||
KVM_X86_OP(vcpu_after_set_cpuid)
|
||||
KVM_X86_OP(vm_init)
|
||||
|
@ -1318,7 +1318,6 @@ struct kvm_x86_ops {
|
||||
int (*hardware_enable)(void);
|
||||
void (*hardware_disable)(void);
|
||||
void (*hardware_unsetup)(void);
|
||||
bool (*cpu_has_accelerated_tpr)(void);
|
||||
bool (*has_emulated_msr)(struct kvm *kvm, u32 index);
|
||||
void (*vcpu_after_set_cpuid)(struct kvm_vcpu *vcpu);
|
||||
|
||||
|
@ -3912,11 +3912,6 @@ static int __init svm_check_processor_compat(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static bool svm_cpu_has_accelerated_tpr(void)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
* The kvm parameter can be NULL (module initialization, or invocation before
|
||||
* VM creation). Be sure to check the kvm parameter before using it.
|
||||
@ -4529,7 +4524,6 @@ static struct kvm_x86_ops svm_x86_ops __initdata = {
|
||||
.hardware_unsetup = svm_hardware_unsetup,
|
||||
.hardware_enable = svm_hardware_enable,
|
||||
.hardware_disable = svm_hardware_disable,
|
||||
.cpu_has_accelerated_tpr = svm_cpu_has_accelerated_tpr,
|
||||
.has_emulated_msr = svm_has_emulated_msr,
|
||||
|
||||
.vcpu_create = svm_vcpu_create,
|
||||
|
@ -541,11 +541,6 @@ static inline bool cpu_need_virtualize_apic_accesses(struct kvm_vcpu *vcpu)
|
||||
return flexpriority_enabled && lapic_in_kernel(vcpu);
|
||||
}
|
||||
|
||||
static inline bool vmx_cpu_has_accelerated_tpr(void)
|
||||
{
|
||||
return flexpriority_enabled;
|
||||
}
|
||||
|
||||
static int possible_passthrough_msr_slot(u32 msr)
|
||||
{
|
||||
u32 i;
|
||||
@ -7714,7 +7709,6 @@ static struct kvm_x86_ops vmx_x86_ops __initdata = {
|
||||
|
||||
.hardware_enable = vmx_hardware_enable,
|
||||
.hardware_disable = vmx_hardware_disable,
|
||||
.cpu_has_accelerated_tpr = vmx_cpu_has_accelerated_tpr,
|
||||
.has_emulated_msr = vmx_has_emulated_msr,
|
||||
|
||||
.vm_size = sizeof(struct kvm_vmx),
|
||||
|
@ -4234,6 +4234,7 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
|
||||
case KVM_CAP_EXIT_ON_EMULATION_FAILURE:
|
||||
case KVM_CAP_VCPU_ATTRIBUTES:
|
||||
case KVM_CAP_SYS_ATTRIBUTES:
|
||||
case KVM_CAP_VAPIC:
|
||||
r = 1;
|
||||
break;
|
||||
case KVM_CAP_EXIT_HYPERCALL:
|
||||
@ -4274,9 +4275,6 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
|
||||
*/
|
||||
r = static_call(kvm_x86_has_emulated_msr)(kvm, MSR_IA32_SMBASE);
|
||||
break;
|
||||
case KVM_CAP_VAPIC:
|
||||
r = !static_call(kvm_x86_cpu_has_accelerated_tpr)();
|
||||
break;
|
||||
case KVM_CAP_NR_VCPUS:
|
||||
r = min_t(unsigned int, num_online_cpus(), KVM_MAX_VCPUS);
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user