Message ID | 20181221090410.27250-15-marcandre.lureau@redhat.com |
---|---|
State | New |
Headers | show |
Series | Generalize machine compatibility properties | expand |
On Fri, 21 Dec 2018 13:03:56 +0400 Marc-André Lureau <marcandre.lureau@redhat.com> wrote: > Use static arrays instead. > > Suggested-by: Eduardo Habkost <ehabkost@redhat.com> > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> > --- > include/hw/boards.h | 3 +++ > include/hw/compat.h | 15 --------------- > include/hw/i386/pc.h | 23 ++--------------------- > hw/arm/virt.c | 5 +---- > hw/core/machine.c | 17 +++++++++++++++++ > hw/i386/pc.c | 23 +++++++++++++++++++++++ > hw/i386/pc_piix.c | 6 ++---- > hw/i386/pc_q35.c | 6 ++---- > hw/ppc/spapr.c | 2 +- > hw/s390x/s390-virtio-ccw.c | 2 +- > 10 files changed, 52 insertions(+), 50 deletions(-) Reviewed-by: Cornelia Huck <cohuck@redhat.com>
On Fri, 21 Dec 2018 13:03:56 +0400 Marc-André Lureau <marcandre.lureau@redhat.com> wrote: > Use static arrays instead. > > Suggested-by: Eduardo Habkost <ehabkost@redhat.com> > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com> > --- > include/hw/boards.h | 3 +++ > include/hw/compat.h | 15 --------------- > include/hw/i386/pc.h | 23 ++--------------------- > hw/arm/virt.c | 5 +---- > hw/core/machine.c | 17 +++++++++++++++++ > hw/i386/pc.c | 23 +++++++++++++++++++++++ > hw/i386/pc_piix.c | 6 ++---- > hw/i386/pc_q35.c | 6 ++---- > hw/ppc/spapr.c | 2 +- > hw/s390x/s390-virtio-ccw.c | 2 +- > 10 files changed, 52 insertions(+), 50 deletions(-) > > diff --git a/include/hw/boards.h b/include/hw/boards.h > index 611b34b26a..a9d413cdb7 100644 > --- a/include/hw/boards.h > +++ b/include/hw/boards.h > @@ -311,4 +311,7 @@ extern const size_t hw_compat_2_8_len; > extern GlobalProperty hw_compat_2_7[]; > extern const size_t hw_compat_2_7_len; > > +extern GlobalProperty hw_compat_2_6[]; > +extern const size_t hw_compat_2_6_len; > + > #endif > diff --git a/include/hw/compat.h b/include/hw/compat.h > index 7ceab17401..c744233fb6 100644 > --- a/include/hw/compat.h > +++ b/include/hw/compat.h > @@ -1,21 +1,6 @@ > #ifndef HW_COMPAT_H > #define HW_COMPAT_H > > -#define HW_COMPAT_2_6 \ > - {\ > - .driver = "virtio-mmio",\ > - .property = "format_transport_address",\ > - .value = "off",\ > - },{\ > - .driver = "virtio-pci",\ > - .property = "disable-modern",\ > - .value = "on",\ > - },{\ > - .driver = "virtio-pci",\ > - .property = "disable-legacy",\ > - .value = "off",\ > - }, > - > #define HW_COMPAT_2_5 \ > {\ > .driver = "isa-fdc",\ > diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h > index 504fbc79a9..ca62def2c9 100644 > --- a/include/hw/i386/pc.h > +++ b/include/hw/i386/pc.h > @@ -318,27 +318,8 @@ extern const size_t pc_compat_2_8_len; > extern GlobalProperty pc_compat_2_7[]; > extern const size_t pc_compat_2_7_len; > > -#define PC_COMPAT_2_6 \ > - HW_COMPAT_2_6 \ > - {\ > - .driver = TYPE_X86_CPU,\ > - .property = "cpuid-0xb",\ > - .value = "off",\ > - },{\ > - .driver = "vmxnet3",\ > - .property = "romfile",\ > - .value = "",\ > - },\ > - {\ > - .driver = TYPE_X86_CPU,\ > - .property = "fill-mtrr-mask",\ > - .value = "off",\ > - },\ > - {\ > - .driver = "apic-common",\ > - .property = "legacy-instance-id",\ > - .value = "on",\ > - }, > +extern GlobalProperty pc_compat_2_6[]; > +extern const size_t pc_compat_2_6_len; > > #define PC_COMPAT_2_5 \ > HW_COMPAT_2_5 > diff --git a/hw/arm/virt.c b/hw/arm/virt.c > index e01d19e5e1..5fe2eebb02 100644 > --- a/hw/arm/virt.c > +++ b/hw/arm/virt.c > @@ -1952,12 +1952,9 @@ DEFINE_VIRT_MACHINE(2, 7) > static void virt_machine_2_6_options(MachineClass *mc) > { > VirtMachineClass *vmc = VIRT_MACHINE_CLASS(OBJECT_CLASS(mc)); > - static GlobalProperty compat[] = { > - HW_COMPAT_2_6 > - }; > > virt_machine_2_7_options(mc); > - compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); > + compat_props_add(mc->compat_props, hw_compat_2_6, hw_compat_2_6_len); > vmc->disallow_affinity_adjustment = true; > /* Disable PMU for 2.6 as PMU support was first introduced in 2.7 */ > vmc->no_pmu = true; > diff --git a/hw/core/machine.c b/hw/core/machine.c > index 92f4c71354..5f1af02c86 100644 > --- a/hw/core/machine.c > +++ b/hw/core/machine.c > @@ -183,6 +183,23 @@ GlobalProperty hw_compat_2_7[] = { > }; > const size_t hw_compat_2_7_len = G_N_ELEMENTS(hw_compat_2_7); > > +GlobalProperty hw_compat_2_6[] = { > + { > + .driver = "virtio-mmio", > + .property = "format_transport_address", > + .value = "off", > + },{ > + .driver = "virtio-pci", > + .property = "disable-modern", > + .value = "on", > + },{ > + .driver = "virtio-pci", > + .property = "disable-legacy", > + .value = "off", > + }, > +}; > +const size_t hw_compat_2_6_len = G_N_ELEMENTS(hw_compat_2_6); > + > static char *machine_get_accel(Object *obj, Error **errp) > { > MachineState *ms = MACHINE(obj); > diff --git a/hw/i386/pc.c b/hw/i386/pc.c > index 96c64ccc4f..f719115f17 100644 > --- a/hw/i386/pc.c > +++ b/hw/i386/pc.c > @@ -252,6 +252,29 @@ GlobalProperty pc_compat_2_7[] = { > }; > const size_t pc_compat_2_7_len = G_N_ELEMENTS(pc_compat_2_7); > > +GlobalProperty pc_compat_2_6[] = { > + { > + .driver = TYPE_X86_CPU, > + .property = "cpuid-0xb", > + .value = "off", > + },{ > + .driver = "vmxnet3", > + .property = "romfile", > + .value = "", > + }, > + { > + .driver = TYPE_X86_CPU, > + .property = "fill-mtrr-mask", > + .value = "off", > + }, > + { > + .driver = "apic-common", > + .property = "legacy-instance-id", > + .value = "on", > + } > +}; > +const size_t pc_compat_2_6_len = G_N_ELEMENTS(pc_compat_2_6); > + > void gsi_handler(void *opaque, int n, int level) > { > GSIState *s = opaque; > diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c > index b956b4abe0..5f3dc8a809 100644 > --- a/hw/i386/pc_piix.c > +++ b/hw/i386/pc_piix.c > @@ -525,14 +525,12 @@ DEFINE_I440FX_MACHINE(v2_7, "pc-i440fx-2.7", NULL, > static void pc_i440fx_2_6_machine_options(MachineClass *m) > { > PCMachineClass *pcmc = PC_MACHINE_CLASS(m); > - static GlobalProperty compat[] = { > - PC_COMPAT_2_6 > - }; > > pc_i440fx_2_7_machine_options(m); > pcmc->legacy_cpu_hotplug = true; > pcmc->linuxboot_dma_enabled = false; > - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); > + compat_props_add(m->compat_props, hw_compat_2_6, hw_compat_2_6_len); > + compat_props_add(m->compat_props, pc_compat_2_6, pc_compat_2_6_len); > } > > DEFINE_I440FX_MACHINE(v2_6, "pc-i440fx-2.6", NULL, > diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c > index e321f14cb5..063df36cad 100644 > --- a/hw/i386/pc_q35.c > +++ b/hw/i386/pc_q35.c > @@ -410,14 +410,12 @@ DEFINE_Q35_MACHINE(v2_7, "pc-q35-2.7", NULL, > static void pc_q35_2_6_machine_options(MachineClass *m) > { > PCMachineClass *pcmc = PC_MACHINE_CLASS(m); > - static GlobalProperty compat[] = { > - PC_COMPAT_2_6 > - }; > > pc_q35_2_7_machine_options(m); > pcmc->legacy_cpu_hotplug = true; > pcmc->linuxboot_dma_enabled = false; > - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); > + compat_props_add(m->compat_props, hw_compat_2_6, hw_compat_2_6_len); > + compat_props_add(m->compat_props, pc_compat_2_6, pc_compat_2_6_len); > } > > DEFINE_Q35_MACHINE(v2_6, "pc-q35-2.6", NULL, > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c > index 445996c0b4..797f480564 100644 > --- a/hw/ppc/spapr.c > +++ b/hw/ppc/spapr.c > @@ -4203,7 +4203,6 @@ DEFINE_SPAPR_MACHINE(2_7, "2.7", false); > static void spapr_machine_2_6_class_options(MachineClass *mc) > { > static GlobalProperty compat[] = { > - HW_COMPAT_2_6 > { > .driver = TYPE_SPAPR_PCI_HOST_BRIDGE, > .property = "ddw", > @@ -4213,6 +4212,7 @@ static void spapr_machine_2_6_class_options(MachineClass *mc) > > spapr_machine_2_7_class_options(mc); > mc->has_hotpluggable_cpus = false; > + compat_props_add(mc->compat_props, hw_compat_2_6, hw_compat_2_6_len); > compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); > } > > diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c > index f28feedd4b..6137c97875 100644 > --- a/hw/s390x/s390-virtio-ccw.c > +++ b/hw/s390x/s390-virtio-ccw.c > @@ -811,7 +811,6 @@ static void ccw_machine_2_6_class_options(MachineClass *mc) > { > S390CcwMachineClass *s390mc = S390_MACHINE_CLASS(mc); > static GlobalProperty compat[] = { > - HW_COMPAT_2_6 > { > .driver = TYPE_S390_IPL, > .property = "iplbext_migration", > @@ -825,6 +824,7 @@ static void ccw_machine_2_6_class_options(MachineClass *mc) > > s390mc->ri_allowed = false; > ccw_machine_2_7_class_options(mc); > + compat_props_add(mc->compat_props, hw_compat_2_6, hw_compat_2_6_len); > compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); > } > DEFINE_CCW_MACHINE(2_6, "2.6", false);
diff --git a/include/hw/boards.h b/include/hw/boards.h index 611b34b26a..a9d413cdb7 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -311,4 +311,7 @@ extern const size_t hw_compat_2_8_len; extern GlobalProperty hw_compat_2_7[]; extern const size_t hw_compat_2_7_len; +extern GlobalProperty hw_compat_2_6[]; +extern const size_t hw_compat_2_6_len; + #endif diff --git a/include/hw/compat.h b/include/hw/compat.h index 7ceab17401..c744233fb6 100644 --- a/include/hw/compat.h +++ b/include/hw/compat.h @@ -1,21 +1,6 @@ #ifndef HW_COMPAT_H #define HW_COMPAT_H -#define HW_COMPAT_2_6 \ - {\ - .driver = "virtio-mmio",\ - .property = "format_transport_address",\ - .value = "off",\ - },{\ - .driver = "virtio-pci",\ - .property = "disable-modern",\ - .value = "on",\ - },{\ - .driver = "virtio-pci",\ - .property = "disable-legacy",\ - .value = "off",\ - }, - #define HW_COMPAT_2_5 \ {\ .driver = "isa-fdc",\ diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 504fbc79a9..ca62def2c9 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -318,27 +318,8 @@ extern const size_t pc_compat_2_8_len; extern GlobalProperty pc_compat_2_7[]; extern const size_t pc_compat_2_7_len; -#define PC_COMPAT_2_6 \ - HW_COMPAT_2_6 \ - {\ - .driver = TYPE_X86_CPU,\ - .property = "cpuid-0xb",\ - .value = "off",\ - },{\ - .driver = "vmxnet3",\ - .property = "romfile",\ - .value = "",\ - },\ - {\ - .driver = TYPE_X86_CPU,\ - .property = "fill-mtrr-mask",\ - .value = "off",\ - },\ - {\ - .driver = "apic-common",\ - .property = "legacy-instance-id",\ - .value = "on",\ - }, +extern GlobalProperty pc_compat_2_6[]; +extern const size_t pc_compat_2_6_len; #define PC_COMPAT_2_5 \ HW_COMPAT_2_5 diff --git a/hw/arm/virt.c b/hw/arm/virt.c index e01d19e5e1..5fe2eebb02 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -1952,12 +1952,9 @@ DEFINE_VIRT_MACHINE(2, 7) static void virt_machine_2_6_options(MachineClass *mc) { VirtMachineClass *vmc = VIRT_MACHINE_CLASS(OBJECT_CLASS(mc)); - static GlobalProperty compat[] = { - HW_COMPAT_2_6 - }; virt_machine_2_7_options(mc); - compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(mc->compat_props, hw_compat_2_6, hw_compat_2_6_len); vmc->disallow_affinity_adjustment = true; /* Disable PMU for 2.6 as PMU support was first introduced in 2.7 */ vmc->no_pmu = true; diff --git a/hw/core/machine.c b/hw/core/machine.c index 92f4c71354..5f1af02c86 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -183,6 +183,23 @@ GlobalProperty hw_compat_2_7[] = { }; const size_t hw_compat_2_7_len = G_N_ELEMENTS(hw_compat_2_7); +GlobalProperty hw_compat_2_6[] = { + { + .driver = "virtio-mmio", + .property = "format_transport_address", + .value = "off", + },{ + .driver = "virtio-pci", + .property = "disable-modern", + .value = "on", + },{ + .driver = "virtio-pci", + .property = "disable-legacy", + .value = "off", + }, +}; +const size_t hw_compat_2_6_len = G_N_ELEMENTS(hw_compat_2_6); + static char *machine_get_accel(Object *obj, Error **errp) { MachineState *ms = MACHINE(obj); diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 96c64ccc4f..f719115f17 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -252,6 +252,29 @@ GlobalProperty pc_compat_2_7[] = { }; const size_t pc_compat_2_7_len = G_N_ELEMENTS(pc_compat_2_7); +GlobalProperty pc_compat_2_6[] = { + { + .driver = TYPE_X86_CPU, + .property = "cpuid-0xb", + .value = "off", + },{ + .driver = "vmxnet3", + .property = "romfile", + .value = "", + }, + { + .driver = TYPE_X86_CPU, + .property = "fill-mtrr-mask", + .value = "off", + }, + { + .driver = "apic-common", + .property = "legacy-instance-id", + .value = "on", + } +}; +const size_t pc_compat_2_6_len = G_N_ELEMENTS(pc_compat_2_6); + void gsi_handler(void *opaque, int n, int level) { GSIState *s = opaque; diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index b956b4abe0..5f3dc8a809 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -525,14 +525,12 @@ DEFINE_I440FX_MACHINE(v2_7, "pc-i440fx-2.7", NULL, static void pc_i440fx_2_6_machine_options(MachineClass *m) { PCMachineClass *pcmc = PC_MACHINE_CLASS(m); - static GlobalProperty compat[] = { - PC_COMPAT_2_6 - }; pc_i440fx_2_7_machine_options(m); pcmc->legacy_cpu_hotplug = true; pcmc->linuxboot_dma_enabled = false; - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, hw_compat_2_6, hw_compat_2_6_len); + compat_props_add(m->compat_props, pc_compat_2_6, pc_compat_2_6_len); } DEFINE_I440FX_MACHINE(v2_6, "pc-i440fx-2.6", NULL, diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index e321f14cb5..063df36cad 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -410,14 +410,12 @@ DEFINE_Q35_MACHINE(v2_7, "pc-q35-2.7", NULL, static void pc_q35_2_6_machine_options(MachineClass *m) { PCMachineClass *pcmc = PC_MACHINE_CLASS(m); - static GlobalProperty compat[] = { - PC_COMPAT_2_6 - }; pc_q35_2_7_machine_options(m); pcmc->legacy_cpu_hotplug = true; pcmc->linuxboot_dma_enabled = false; - compat_props_add(m->compat_props, compat, G_N_ELEMENTS(compat)); + compat_props_add(m->compat_props, hw_compat_2_6, hw_compat_2_6_len); + compat_props_add(m->compat_props, pc_compat_2_6, pc_compat_2_6_len); } DEFINE_Q35_MACHINE(v2_6, "pc-q35-2.6", NULL, diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 445996c0b4..797f480564 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4203,7 +4203,6 @@ DEFINE_SPAPR_MACHINE(2_7, "2.7", false); static void spapr_machine_2_6_class_options(MachineClass *mc) { static GlobalProperty compat[] = { - HW_COMPAT_2_6 { .driver = TYPE_SPAPR_PCI_HOST_BRIDGE, .property = "ddw", @@ -4213,6 +4212,7 @@ static void spapr_machine_2_6_class_options(MachineClass *mc) spapr_machine_2_7_class_options(mc); mc->has_hotpluggable_cpus = false; + compat_props_add(mc->compat_props, hw_compat_2_6, hw_compat_2_6_len); compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index f28feedd4b..6137c97875 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -811,7 +811,6 @@ static void ccw_machine_2_6_class_options(MachineClass *mc) { S390CcwMachineClass *s390mc = S390_MACHINE_CLASS(mc); static GlobalProperty compat[] = { - HW_COMPAT_2_6 { .driver = TYPE_S390_IPL, .property = "iplbext_migration", @@ -825,6 +824,7 @@ static void ccw_machine_2_6_class_options(MachineClass *mc) s390mc->ri_allowed = false; ccw_machine_2_7_class_options(mc); + compat_props_add(mc->compat_props, hw_compat_2_6, hw_compat_2_6_len); compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); } DEFINE_CCW_MACHINE(2_6, "2.6", false);
Use static arrays instead. Suggested-by: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> --- include/hw/boards.h | 3 +++ include/hw/compat.h | 15 --------------- include/hw/i386/pc.h | 23 ++--------------------- hw/arm/virt.c | 5 +---- hw/core/machine.c | 17 +++++++++++++++++ hw/i386/pc.c | 23 +++++++++++++++++++++++ hw/i386/pc_piix.c | 6 ++---- hw/i386/pc_q35.c | 6 ++---- hw/ppc/spapr.c | 2 +- hw/s390x/s390-virtio-ccw.c | 2 +- 10 files changed, 52 insertions(+), 50 deletions(-)