Patchwork virtio-console: Automatically use virtio-serial-bus for the older -virtioconsole invocation

login
register
mail settings
Submitter Amit Shah
Date Jan. 21, 2010, 10:49 a.m.
Message ID <1264070963-1722-1-git-send-email-amit.shah@redhat.com>
Download mbox | patch
Permalink /patch/43425/
State New
Headers show

Comments

Amit Shah - Jan. 21, 2010, 10:49 a.m.
These hunks got dropped off mysteriously during the rebasing of my
virtio-serial series. Thanks go to Markus for noticing it.

Without these fixes, -virtioconsole doesn't actually have any effect.

Signed-off-by: Amit Shah <amit.shah@redhat.com>
Reported-by: Markus Armbruster <armbru@redhat.com>
---
 roms/seabios |    2 +-
 vl.c         |   15 +++++++++++++--
 2 files changed, 14 insertions(+), 3 deletions(-)
Anthony Liguori - Jan. 26, 2010, 10:04 p.m.
On 01/21/2010 04:49 AM, Amit Shah wrote:
> These hunks got dropped off mysteriously during the rebasing of my
> virtio-serial series. Thanks go to Markus for noticing it.
>
> Without these fixes, -virtioconsole doesn't actually have any effect.
>
> Signed-off-by: Amit Shah<amit.shah@redhat.com>
> Reported-by: Markus Armbruster<armbru@redhat.com>
>    
Applied.  Thanks.

Regards,

Anthony Liguori
> ---
>   roms/seabios |    2 +-
>   vl.c         |   15 +++++++++++++--
>   2 files changed, 14 insertions(+), 3 deletions(-)
>
> diff --git a/roms/seabios b/roms/seabios
> index 5da6833..8362699 160000
> --- a/roms/seabios
> +++ b/roms/seabios
> @@ -1 +1 @@
> -Subproject commit 5da68339ecf44677b8f4f115cdf3cb1da46a9f6c
> +Subproject commit 8362699269d7b3c816981be0e306d7531aa3ea1d
> diff --git a/vl.c b/vl.c
> index e070ec9..ae3ee0b 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -288,8 +288,9 @@ static struct {
>       { .driver = "isa-parallel",         .flag =&default_parallel  },
>       { .driver = "isa-fdc",              .flag =&default_floppy    },
>       { .driver = "ide-drive",            .flag =&default_cdrom     },
> -    { .driver = "virtio-console-pci",   .flag =&default_virtcon   },
> -    { .driver = "virtio-console-s390",  .flag =&default_virtcon   },
> +    { .driver = "virtio-serial-pci",    .flag =&default_virtcon   },
> +    { .driver = "virtio-serial-s390",   .flag =&default_virtcon   },
> +    { .driver = "virtio-serial",        .flag =&default_virtcon   },
>       { .driver = "VGA",                  .flag =&default_vga       },
>       { .driver = "cirrus-vga",           .flag =&default_vga       },
>       { .driver = "vmware-svga",          .flag =&default_vga       },
> @@ -4623,6 +4624,7 @@ static int virtcon_parse(const char *devname)
>   {
>       static int index = 0;
>       char label[32];
> +    QemuOpts *bus_opts, *dev_opts;
>
>       if (strcmp(devname, "none") == 0)
>           return 0;
> @@ -4630,6 +4632,13 @@ static int virtcon_parse(const char *devname)
>           fprintf(stderr, "qemu: too many virtio consoles\n");
>           exit(1);
>       }
> +
> +    bus_opts = qemu_opts_create(&qemu_device_opts, NULL, 0);
> +    qemu_opt_set(bus_opts, "driver", "virtio-serial");
> +
> +    dev_opts = qemu_opts_create(&qemu_device_opts, NULL, 0);
> +    qemu_opt_set(dev_opts, "driver", "virtconsole");
> +
>       snprintf(label, sizeof(label), "virtcon%d", index);
>       virtcon_hds[index] = qemu_chr_open(label, devname, NULL);
>       if (!virtcon_hds[index]) {
> @@ -4637,6 +4646,8 @@ static int virtcon_parse(const char *devname)
>                   devname, strerror(errno));
>           return -1;
>       }
> +    qemu_opt_set(dev_opts, "chardev", label);
> +
>       index++;
>       return 0;
>   }
>

Patch

diff --git a/roms/seabios b/roms/seabios
index 5da6833..8362699 160000
--- a/roms/seabios
+++ b/roms/seabios
@@ -1 +1 @@ 
-Subproject commit 5da68339ecf44677b8f4f115cdf3cb1da46a9f6c
+Subproject commit 8362699269d7b3c816981be0e306d7531aa3ea1d
diff --git a/vl.c b/vl.c
index e070ec9..ae3ee0b 100644
--- a/vl.c
+++ b/vl.c
@@ -288,8 +288,9 @@  static struct {
     { .driver = "isa-parallel",         .flag = &default_parallel  },
     { .driver = "isa-fdc",              .flag = &default_floppy    },
     { .driver = "ide-drive",            .flag = &default_cdrom     },
-    { .driver = "virtio-console-pci",   .flag = &default_virtcon   },
-    { .driver = "virtio-console-s390",  .flag = &default_virtcon   },
+    { .driver = "virtio-serial-pci",    .flag = &default_virtcon   },
+    { .driver = "virtio-serial-s390",   .flag = &default_virtcon   },
+    { .driver = "virtio-serial",        .flag = &default_virtcon   },
     { .driver = "VGA",                  .flag = &default_vga       },
     { .driver = "cirrus-vga",           .flag = &default_vga       },
     { .driver = "vmware-svga",          .flag = &default_vga       },
@@ -4623,6 +4624,7 @@  static int virtcon_parse(const char *devname)
 {
     static int index = 0;
     char label[32];
+    QemuOpts *bus_opts, *dev_opts;
 
     if (strcmp(devname, "none") == 0)
         return 0;
@@ -4630,6 +4632,13 @@  static int virtcon_parse(const char *devname)
         fprintf(stderr, "qemu: too many virtio consoles\n");
         exit(1);
     }
+
+    bus_opts = qemu_opts_create(&qemu_device_opts, NULL, 0);
+    qemu_opt_set(bus_opts, "driver", "virtio-serial");
+
+    dev_opts = qemu_opts_create(&qemu_device_opts, NULL, 0);
+    qemu_opt_set(dev_opts, "driver", "virtconsole");
+
     snprintf(label, sizeof(label), "virtcon%d", index);
     virtcon_hds[index] = qemu_chr_open(label, devname, NULL);
     if (!virtcon_hds[index]) {
@@ -4637,6 +4646,8 @@  static int virtcon_parse(const char *devname)
                 devname, strerror(errno));
         return -1;
     }
+    qemu_opt_set(dev_opts, "chardev", label);
+
     index++;
     return 0;
 }