On 12/13/2017 02:24 PM, David Hildenbrand wrote: > Make sure "-cpu qemu" works with "-M none". > > Signed-off-by: David Hildenbrand <da...@redhat.com> > --- > > Conny, if this is okay, can you squash with the original patch? > > hw/s390x/s390-virtio-ccw.c | 4 ---- > target/s390x/cpu_models.c | 7 +++++-- > target/s390x/gen-features.c | 4 ++-- > 3 files changed, 7 insertions(+), 8 deletions(-) > > diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c > index c1f96418fa..466e45343c 100644 > --- a/hw/s390x/s390-virtio-ccw.c > +++ b/hw/s390x/s390-virtio-ccw.c > @@ -725,10 +725,6 @@ bool css_migration_enabled(void) > > static void ccw_machine_2_12_instance_options(MachineState *machine) > { > - static const S390FeatInit qemu_cpu_feat = { S390_FEAT_LIST_QEMU_V2_12 }; > - > - /* with 2.12 we emulated a stripped down zEC12 (GA 2) */ > - s390_set_qemu_cpu_model(0x2827, 12, 2, qemu_cpu_feat); > }
So what happens now when you specify a 2.10 machine? > > static void ccw_machine_2_12_class_options(MachineClass *mc) > diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c > index 7404ef52c6..212a5f0697 100644 > --- a/target/s390x/cpu_models.c > +++ b/target/s390x/cpu_models.c > @@ -1122,8 +1122,6 @@ static void s390_qemu_cpu_model_initfn(Object *obj) > S390CPU *cpu = S390_CPU(obj); > > cpu->model = g_malloc0(sizeof(*cpu->model)); > - /* has to be initialized by now via s390_set_qemu_cpu_model() */ > - g_assert(s390_qemu_cpu_model.def); > /* copy the CPU model so we can modify it */ > memcpy(cpu->model, &s390_qemu_cpu_model, sizeof(*cpu->model)); > } > @@ -1266,6 +1264,7 @@ static void init_ignored_base_feat(void) > > static void register_types(void) > { > + static const S390FeatInit qemu_latest_init = { > S390_FEAT_LIST_QEMU_LATEST }; > int i; > > init_ignored_base_feat(); > @@ -1281,6 +1280,10 @@ static void register_types(void) > s390_cpu_defs[i].full_feat); > } > > + /* initialize the qemu model with latest definition */ > + s390_set_qemu_cpu_model(QEMU_MAX_CPU_TYPE, QEMU_MAX_CPU_GEN, > + QEMU_MAX_CPU_EC_GA, qemu_latest_init); > + > for (i = 0; i < ARRAY_SIZE(s390_cpu_defs); i++) { > char *base_name = s390_base_cpu_type_name(s390_cpu_defs[i].name); > TypeInfo ti_base = { > diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c > index 983f2dcd52..deace660e1 100644 > --- a/target/s390x/gen-features.c > +++ b/target/s390x/gen-features.c > @@ -544,7 +544,7 @@ static uint16_t qemu_V2_11[] = { > S390_FEAT_ZARCH, > }; > > -static uint16_t qemu_V2_12[] = { > +static uint16_t qemu_LATEST[] = { > S390_FEAT_DAT_ENH, > S390_FEAT_IDTE_SEGMENT, > S390_FEAT_STFLE, > @@ -685,7 +685,7 @@ static FeatGroupDefSpec FeatGroupDef[] = { > *******************************/ > static FeatGroupDefSpec QemuFeatDef[] = { > QEMU_FEAT_INITIALIZER(V2_11), > - QEMU_FEAT_INITIALIZER(V2_12), > + QEMU_FEAT_INITIALIZER(LATEST), > QEMU_FEAT_INITIALIZER(MAX), > }; >