[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 1/5] s390x/kvm: disable cpu model for the 2.7 machine
From: |
Cornelia Huck |
Subject: |
[Qemu-devel] [PULL 1/5] s390x/kvm: disable cpu model for the 2.7 machine |
Date: |
Mon, 19 Sep 2016 11:14:45 +0200 |
From: Christian Borntraeger <address@hidden>
cpu model was merged with 2.8, it is wrong to abuse ri_allowed which
was enabled with 2.7.
Signed-off-by: Christian Borntraeger <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
---
hw/s390x/s390-virtio-ccw.c | 17 +++++++++++++++++
include/hw/s390x/s390-virtio-ccw.h | 3 +++
target-s390x/kvm.c | 2 +-
3 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index a63b4e8..e340eab 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -193,6 +193,7 @@ static void ccw_machine_class_init(ObjectClass *oc, void
*data)
S390CcwMachineClass *s390mc = S390_MACHINE_CLASS(mc);
s390mc->ri_allowed = true;
+ s390mc->cpu_model_allowed = true;
mc->init = ccw_init;
mc->reset = s390_machine_reset;
mc->hot_add_cpu = s390_hot_add_cpu;
@@ -258,6 +259,19 @@ bool ri_allowed(void)
return 0;
}
+bool cpu_model_allowed(void)
+{
+ MachineClass *mc = MACHINE_GET_CLASS(qdev_get_machine());
+ if (object_class_dynamic_cast(OBJECT_CLASS(mc),
+ TYPE_S390_CCW_MACHINE)) {
+ S390CcwMachineClass *s390mc = S390_MACHINE_CLASS(mc);
+
+ return s390mc->cpu_model_allowed;
+ }
+ /* allow CPU model qmp queries with the "none" machine */
+ return true;
+}
+
static inline void s390_machine_initfn(Object *obj)
{
object_property_add_bool(obj, "aes-key-wrap",
@@ -397,6 +411,9 @@ static void ccw_machine_2_7_instance_options(MachineState
*machine)
static void ccw_machine_2_7_class_options(MachineClass *mc)
{
+ S390CcwMachineClass *s390mc = S390_MACHINE_CLASS(mc);
+
+ s390mc->cpu_model_allowed = false;
ccw_machine_2_8_class_options(mc);
SET_MACHINE_COMPAT(mc, CCW_COMPAT_2_7);
}
diff --git a/include/hw/s390x/s390-virtio-ccw.h
b/include/hw/s390x/s390-virtio-ccw.h
index a0c1fc8..6ecae00 100644
--- a/include/hw/s390x/s390-virtio-ccw.h
+++ b/include/hw/s390x/s390-virtio-ccw.h
@@ -36,9 +36,12 @@ typedef struct S390CcwMachineClass {
/*< public >*/
bool ri_allowed;
+ bool cpu_model_allowed;
} S390CcwMachineClass;
/* runtime-instrumentation allowed by the machine */
bool ri_allowed(void);
+/* cpu model allowed by the machine */
+bool cpu_model_allowed(void);
#endif
diff --git a/target-s390x/kvm.c b/target-s390x/kvm.c
index dfaf1ca..4b847a3 100644
--- a/target-s390x/kvm.c
+++ b/target-s390x/kvm.c
@@ -2490,7 +2490,7 @@ static int configure_cpu_feat(const S390FeatBitmap
features)
bool kvm_s390_cpu_models_supported(void)
{
- if (!ri_allowed()) {
+ if (!cpu_model_allowed()) {
/* compatibility machines interfere with the cpu model */
return false;
}
--
2.9.3
- [Qemu-devel] [PULL 0/5] next round of s390x patches, Cornelia Huck, 2016/09/19
- [Qemu-devel] [PULL 1/5] s390x/kvm: disable cpu model for the 2.7 machine,
Cornelia Huck <=
- [Qemu-devel] [PULL 2/5] MAINTAINERS: update s390 machine file patterns, Cornelia Huck, 2016/09/19
- [Qemu-devel] [PULL 5/5] QMP: fixup typos and whitespace damage, Cornelia Huck, 2016/09/19
- [Qemu-devel] [PULL 4/5] virtio-ccw: set revision 2 as maximal revision number, Cornelia Huck, 2016/09/19
- [Qemu-devel] [PULL 3/5] virtio-ccw: respond to READ_STATUS command, Cornelia Huck, 2016/09/19
- Re: [Qemu-devel] [PULL 0/5] next round of s390x patches, Peter Maydell, 2016/09/19