From: Thomas Huth Date: Fri, 3 Jan 2025 14:42:30 +0000 (+0100) Subject: hw/s390x: Remove the cpu_model_allowed flag and related code X-Git-Tag: v10.0.0-rc0~97^2~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fd58c03a0ecb67420ac81d6b3095605ad0c45edd;p=thirdparty%2Fqemu.git hw/s390x: Remove the cpu_model_allowed flag and related code Now that the last machine type that disabled cpu_model_allowed has been removed, we can also remove the cpu_model_allowed flag itself and all the related conditional code. Reviewed-by: Cornelia Huck Acked-by: Christian Borntraeger Message-ID: <20250103144232.520383-9-thuth@redhat.com> Signed-off-by: Thomas Huth --- diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index a1e9c1f6e87..08562e45a85 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -727,8 +727,7 @@ static S390CcwMachineClass *current_mc; * * Attention! Do *not* add additional new wrappers for CPU features via this * mechanism anymore. CPU features should be handled via the CPU models, - * i.e. checking with cpu_model_allowed() during CPU initialization and - * s390_has_feat() later should be sufficient. + * i.e. checking with s390_has_feat() should be sufficient. */ static S390CcwMachineClass *get_machine_class(void) { @@ -744,11 +743,6 @@ static S390CcwMachineClass *get_machine_class(void) return current_mc; } -bool cpu_model_allowed(void) -{ - return get_machine_class()->cpu_model_allowed; -} - bool hpage_1m_allowed(void) { return get_machine_class()->hpage_1m_allowed; @@ -786,7 +780,6 @@ static void ccw_machine_class_init(ObjectClass *oc, void *data) HotplugHandlerClass *hc = HOTPLUG_HANDLER_CLASS(oc); S390CcwMachineClass *s390mc = S390_CCW_MACHINE_CLASS(mc); - s390mc->cpu_model_allowed = true; s390mc->hpage_1m_allowed = true; s390mc->max_threads = 1; mc->init = ccw_init; diff --git a/include/hw/s390x/s390-virtio-ccw.h b/include/hw/s390x/s390-virtio-ccw.h index 4559dbf1bdd..686d9497d20 100644 --- a/include/hw/s390x/s390-virtio-ccw.h +++ b/include/hw/s390x/s390-virtio-ccw.h @@ -53,13 +53,10 @@ struct S390CcwMachineClass { MachineClass parent_class; /*< public >*/ - bool cpu_model_allowed; bool hpage_1m_allowed; int max_threads; }; -/* cpu model allowed by the machine */ -bool cpu_model_allowed(void); /* 1M huge page mappings allowed by the machine */ bool hpage_1m_allowed(void); diff --git a/target/s390x/kvm/kvm.c b/target/s390x/kvm/kvm.c index 540b4743987..4d56e653ddf 100644 --- a/target/s390x/kvm/kvm.c +++ b/target/s390x/kvm/kvm.c @@ -374,12 +374,10 @@ int kvm_arch_init(MachineState *ms, KVMState *s) kvm_vm_enable_cap(s, KVM_CAP_S390_VECTOR_REGISTERS, 0); kvm_vm_enable_cap(s, KVM_CAP_S390_USER_STSI, 0); kvm_vm_enable_cap(s, KVM_CAP_S390_CPU_TOPOLOGY, 0); + kvm_vm_enable_cap(s, KVM_CAP_S390_GS, 0); if (kvm_vm_enable_cap(s, KVM_CAP_S390_RI, 0) == 0) { cap_ri = 1; } - if (cpu_model_allowed()) { - kvm_vm_enable_cap(s, KVM_CAP_S390_GS, 0); - } /* * The migration interface for ais was introduced with kernel 4.13 @@ -387,7 +385,7 @@ int kvm_arch_init(MachineState *ms, KVMState *s) * support is considered necessary, we only try to enable this for * newer machine types if KVM_CAP_S390_AIS_MIGRATION is available. */ - if (cpu_model_allowed() && kvm_kernel_irqchip_allowed() && + if (kvm_kernel_irqchip_allowed() && kvm_check_extension(s, KVM_CAP_S390_AIS_MIGRATION)) { kvm_vm_enable_cap(s, KVM_CAP_S390_AIS, 0); } @@ -2352,10 +2350,6 @@ static int configure_cpu_feat(const S390FeatBitmap features) bool kvm_s390_cpu_models_supported(void) { - if (!cpu_model_allowed()) { - /* compatibility machines interfere with the cpu model */ - return false; - } return kvm_vm_check_attr(kvm_state, KVM_S390_VM_CPU_MODEL, KVM_S390_VM_CPU_MACHINE) && kvm_vm_check_attr(kvm_state, KVM_S390_VM_CPU_MODEL,