From 392ecf543dd2b219828374850d833296a55567ea Mon Sep 17 00:00:00 2001 From: Amit Shah Date: Thu, 21 Jan 2010 16:19:23 +0530 Subject: [PATCH] virtio-console: Automatically use virtio-serial-bus for the older -virtioconsole invocation 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 Reported-by: Markus Armbruster Signed-off-by: Anthony Liguori --- roms/seabios | 2 +- vl.c | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/roms/seabios b/roms/seabios index 5da68339ec..8362699269 160000 --- a/roms/seabios +++ b/roms/seabios @@ -1 +1 @@ -Subproject commit 5da68339ecf44677b8f4f115cdf3cb1da46a9f6c +Subproject commit 8362699269d7b3c816981be0e306d7531aa3ea1d diff --git a/vl.c b/vl.c index 2fb5b581f4..5e8c775089 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 }, @@ -4629,6 +4630,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; @@ -4636,6 +4638,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]) { @@ -4643,6 +4652,8 @@ static int virtcon_parse(const char *devname) devname, strerror(errno)); return -1; } + qemu_opt_set(dev_opts, "chardev", label); + index++; return 0; }