Patchwork Re: [PATCH] virtio-serial: don't set MULTIPORT for 1 port dev

login
register
mail settings
Submitter Amit Shah
Date Feb. 15, 2010, 9:24 a.m.
Message ID <20100215092401.GA12082@amit-x200.redhat.com>
Download mbox | patch
Permalink /patch/45352/
State New
Headers show

Comments

Amit Shah - Feb. 15, 2010, 9:24 a.m.
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):



		Amit
Michael S. Tsirkin - Feb. 15, 2010, 10:21 a.m.
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
Gerd Hoffmann - Feb. 15, 2010, 12:24 p.m.
On 02/15/10 10:24, Amit Shah wrote:
>> 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):

Yep, should be splitted.

> 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",

.alias should be dropped too.

cheers,
   Gerd

Patch

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);