s390x/kvm: disable cpu model for the 2.7 machine
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 <borntraeger@de.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
This commit is contained in:
parent
e3571ae30c
commit
e73316d594
|
@ -193,6 +193,7 @@ static void ccw_machine_class_init(ObjectClass *oc, void *data)
|
||||||
S390CcwMachineClass *s390mc = S390_MACHINE_CLASS(mc);
|
S390CcwMachineClass *s390mc = S390_MACHINE_CLASS(mc);
|
||||||
|
|
||||||
s390mc->ri_allowed = true;
|
s390mc->ri_allowed = true;
|
||||||
|
s390mc->cpu_model_allowed = true;
|
||||||
mc->init = ccw_init;
|
mc->init = ccw_init;
|
||||||
mc->reset = s390_machine_reset;
|
mc->reset = s390_machine_reset;
|
||||||
mc->hot_add_cpu = s390_hot_add_cpu;
|
mc->hot_add_cpu = s390_hot_add_cpu;
|
||||||
|
@ -258,6 +259,19 @@ bool ri_allowed(void)
|
||||||
return 0;
|
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)
|
static inline void s390_machine_initfn(Object *obj)
|
||||||
{
|
{
|
||||||
object_property_add_bool(obj, "aes-key-wrap",
|
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)
|
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);
|
ccw_machine_2_8_class_options(mc);
|
||||||
SET_MACHINE_COMPAT(mc, CCW_COMPAT_2_7);
|
SET_MACHINE_COMPAT(mc, CCW_COMPAT_2_7);
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,9 +36,12 @@ typedef struct S390CcwMachineClass {
|
||||||
|
|
||||||
/*< public >*/
|
/*< public >*/
|
||||||
bool ri_allowed;
|
bool ri_allowed;
|
||||||
|
bool cpu_model_allowed;
|
||||||
} S390CcwMachineClass;
|
} S390CcwMachineClass;
|
||||||
|
|
||||||
/* runtime-instrumentation allowed by the machine */
|
/* runtime-instrumentation allowed by the machine */
|
||||||
bool ri_allowed(void);
|
bool ri_allowed(void);
|
||||||
|
/* cpu model allowed by the machine */
|
||||||
|
bool cpu_model_allowed(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -2490,7 +2490,7 @@ static int configure_cpu_feat(const S390FeatBitmap features)
|
||||||
|
|
||||||
bool kvm_s390_cpu_models_supported(void)
|
bool kvm_s390_cpu_models_supported(void)
|
||||||
{
|
{
|
||||||
if (!ri_allowed()) {
|
if (!cpu_model_allowed()) {
|
||||||
/* compatibility machines interfere with the cpu model */
|
/* compatibility machines interfere with the cpu model */
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue