On Mon, Feb 15, 2010 at 02:54:01PM +0530, Amit Shah wrote: > On (Mon) Feb 15 2010 [10:03:34], Gerd Hoffmann wrote: > > On 02/12/10 15:23, Amit Shah wrote: > >> On (Fri) Feb 12 2010 [15:42:14], Michael S. Tsirkin wrote: > >>> Since commit 98b19252cf1bd97c54bc4613f3537c5ec0aae263, all > >>> serial devices declare MULTIPORT feature. > >>> To allow 0.12 compatibility, we should clear this when > >>> max_nr_ports is 1. > >> > >> In addition to this, setting max_nr_ports to 1 is needed when -M 0.12 is > >> selected. > > > > Indeed. > > > >> However, is this the only way to do it? Gerd? > > > > Is there a qdev property for max_nr_ports? Then simply adding a compat > > property will do the trick. > > Something like this (I can split it into two patches before submission): >
Right. So, can you ack my patch pls? > diff --git a/hw/pc.c b/hw/pc.c > index 5b29f3b..a975934 100644 > --- a/hw/pc.c > +++ b/hw/pc.c > @@ -1055,12 +1055,32 @@ void cmos_set_s3_resume(void) > } > > static QEMUMachine pc_machine = { > + .name = "pc-0.13", > + .alias = "pc", > + .desc = "Standard PC", > + .init = pc_init_pci, > + .is_default = 1, > + .max_cpus = 255, > +}; > + > +static QEMUMachine pc_machine_v0_12 = { > .name = "pc-0.12", > .alias = "pc", > .desc = "Standard PC", > .init = pc_init_pci, > .max_cpus = 255, > - .is_default = 1, > + .compat_props = (GlobalProperty[]) { > + { > + .driver = "virtio-serial-pci", > + .property = "max_nr_ports", > + .value = stringify(1), > + },{ > + .driver = "virtio-serial-pci", > + .property = "vectors", > + .value = stringify(0), > + }, > + { /* end of list */ } > + } > }; > > static QEMUMachine pc_machine_v0_11 = { > @@ -1074,6 +1094,14 @@ static QEMUMachine pc_machine_v0_11 = { > .property = "vectors", > .value = stringify(0), > },{ > + .driver = "virtio-serial-pci", > + .property = "max_nr_ports", > + .value = stringify(1), > + },{ > + .driver = "virtio-serial-pci", > + .property = "vectors", > + .value = stringify(0), > + },{ > .driver = "ide-drive", > .property = "ver", > .value = "0.11", > @@ -1105,6 +1133,14 @@ static QEMUMachine pc_machine_v0_10 = { > .property = "class", > .value = stringify(PCI_CLASS_DISPLAY_OTHER), > },{ > + .driver = "virtio-serial-pci", > + .property = "max_nr_ports", > + .value = stringify(1), > + },{ > + .driver = "virtio-serial-pci", > + .property = "vectors", > + .value = stringify(0), > + },{ > .driver = "virtio-net-pci", > .property = "vectors", > .value = stringify(0), > @@ -1139,6 +1175,7 @@ static QEMUMachine isapc_machine = { > static void pc_machine_init(void) > { > qemu_register_machine(&pc_machine); > + qemu_register_machine(&pc_machine_v0_12); > qemu_register_machine(&pc_machine_v0_11); > qemu_register_machine(&pc_machine_v0_10); > qemu_register_machine(&isapc_machine); > > Amit