mirror of
https://github.com/qemu/qemu.git
synced 2026-04-05 21:46:25 +00:00
target/i386/kvm: Remove X86CPU::hyperv_synic_kvm_only field
The X86CPU::hyperv_synic_kvm_only boolean (see commit 9b4cf107b0
"hyperv: only add SynIC in compatible configurations") was only set
in the pc_compat_3_0[] array, via the 'x-hv-synic-kvm-only=on'
property. We removed all machines using that array, lets remove that
property and all the code around it.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20260307150042.78030-4-philmd@linaro.org>
This commit is contained in:
@@ -10589,8 +10589,6 @@ static const Property x86_cpu_properties[] = {
|
||||
* to the specific Windows version being used."
|
||||
*/
|
||||
DEFINE_PROP_INT32("x-hv-max-vps", X86CPU, hv_max_vps, -1),
|
||||
DEFINE_PROP_BOOL("x-hv-synic-kvm-only", X86CPU, hyperv_synic_kvm_only,
|
||||
false),
|
||||
DEFINE_PROP_BOOL("x-intel-pt-auto-level", X86CPU, intel_pt_auto_level,
|
||||
true),
|
||||
DEFINE_PROP_BOOL("x-l1-cache-per-thread", X86CPU, l1_cache_per_core, true),
|
||||
|
||||
@@ -2335,7 +2335,6 @@ struct ArchCPU {
|
||||
|
||||
uint32_t hyperv_spinlock_attempts;
|
||||
char *hyperv_vendor;
|
||||
bool hyperv_synic_kvm_only;
|
||||
uint64_t hyperv_features;
|
||||
bool hyperv_passthrough;
|
||||
OnOffAuto hyperv_no_nonarch_cs;
|
||||
|
||||
@@ -1278,10 +1278,7 @@ static struct kvm_cpuid2 *get_supported_hv_cpuid_legacy(CPUState *cs)
|
||||
}
|
||||
|
||||
if (has_msr_hv_synic) {
|
||||
unsigned int cap = cpu->hyperv_synic_kvm_only ?
|
||||
KVM_CAP_HYPERV_SYNIC : KVM_CAP_HYPERV_SYNIC2;
|
||||
|
||||
if (kvm_check_extension(cs->kvm_state, cap) > 0) {
|
||||
if (kvm_check_extension(cs->kvm_state, KVM_CAP_HYPERV_SYNIC2) > 0) {
|
||||
entry_feat->eax |= HV_SYNIC_AVAILABLE;
|
||||
}
|
||||
}
|
||||
@@ -1543,7 +1540,6 @@ bool kvm_hyperv_expand_features(X86CPU *cpu, Error **errp)
|
||||
|
||||
/* Additional dependencies not covered by kvm_hyperv_properties[] */
|
||||
if (hyperv_feat_enabled(cpu, HYPERV_FEAT_SYNIC) &&
|
||||
!cpu->hyperv_synic_kvm_only &&
|
||||
!hyperv_feat_enabled(cpu, HYPERV_FEAT_VPINDEX)) {
|
||||
error_setg(errp, "Hyper-V %s requires Hyper-V %s",
|
||||
kvm_hyperv_properties[HYPERV_FEAT_SYNIC].desc,
|
||||
@@ -1608,8 +1604,7 @@ static int hyperv_fill_cpuids(CPUState *cs,
|
||||
c->eax |= HV_HYPERCALL_AVAILABLE;
|
||||
|
||||
/* SynIC and Vmbus devices require messages/signals hypercalls */
|
||||
if (hyperv_feat_enabled(cpu, HYPERV_FEAT_SYNIC) &&
|
||||
!cpu->hyperv_synic_kvm_only) {
|
||||
if (hyperv_feat_enabled(cpu, HYPERV_FEAT_SYNIC)) {
|
||||
c->ebx |= HV_POST_MESSAGES | HV_SIGNAL_EVENTS;
|
||||
}
|
||||
|
||||
@@ -1752,16 +1747,14 @@ static int hyperv_init_vcpu(X86CPU *cpu)
|
||||
}
|
||||
|
||||
if (hyperv_feat_enabled(cpu, HYPERV_FEAT_SYNIC)) {
|
||||
uint32_t synic_cap = cpu->hyperv_synic_kvm_only ?
|
||||
KVM_CAP_HYPERV_SYNIC : KVM_CAP_HYPERV_SYNIC2;
|
||||
ret = kvm_vcpu_enable_cap(cs, synic_cap, 0);
|
||||
ret = kvm_vcpu_enable_cap(cs, KVM_CAP_HYPERV_SYNIC2, 0);
|
||||
if (ret < 0) {
|
||||
error_report("failed to turn on HyperV SynIC in KVM: %s",
|
||||
strerror(-ret));
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (!cpu->hyperv_synic_kvm_only && !hyperv_is_synic_enabled()) {
|
||||
if (!hyperv_is_synic_enabled()) {
|
||||
ret = hyperv_x86_synic_add(cpu);
|
||||
if (ret < 0) {
|
||||
error_report("failed to create HyperV SynIC: %s",
|
||||
|
||||
Reference in New Issue
Block a user