From c06615c63dc80cd53ee39eab649da21284d5694a Mon Sep 17 00:00:00 2001 From: Amit Shah Date: Thu, 22 Dec 2011 05:01:58 +0100 Subject: [PATCH 06/10] virtio-console: Simplify init callbacks RH-Author: Amit Shah Message-id: <8841218463cd5fc628ee80aa61b792231e1863c6.1324529974.git.amit.shah@redhat.com> Patchwork-id: 35924 O-Subject: [RHEL6.3 qemu-kvm PATCH 06/10] virtio-console: Simplify init callbacks Bugzilla: 769528 RH-Acked-by: Paolo Bonzini RH-Acked-by: Gerd Hoffmann RH-Acked-by: Markus Armbruster From: Markus Armbruster Signed-off-by: Markus Armbruster Signed-off-by: Amit Shah (cherry picked from commit 7edfe65246e57c1970f72146c6ea11f8d3a71e2d) Conflicts: hw/virtio-console.c (Conflict due to non-upstream flow control patches) --- hw/virtio-console.c | 35 +++++++++-------------------------- 1 files changed, 9 insertions(+), 26 deletions(-) Signed-off-by: Michal Novotny --- hw/virtio-console.c | 35 +++++++++-------------------------- 1 files changed, 9 insertions(+), 26 deletions(-) diff --git a/hw/virtio-console.c b/hw/virtio-console.c index f3954c4..ac9bc57 100644 --- a/hw/virtio-console.c +++ b/hw/virtio-console.c @@ -113,12 +113,18 @@ static const QemuChrHandlers chr_handlers_no_flow_control = { .fd_event = chr_event, }; -static int generic_port_init(VirtConsole *vcon, VirtIOSerialPort *port) +static int virtconsole_initfn(VirtIOSerialPort *port) { static const QemuChrHandlers *handlers; + VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port); VirtIOSerialPortInfo *info = DO_UPCAST(VirtIOSerialPortInfo, qdev, vcon->port.dev.info); + if (port->id == 0 && !info->is_console) { + error_report("Port number 0 on virtio-serial devices reserved for virtconsole devices for backward compatibility."); + return -1; + } + if (vcon->chr) { handlers = &chr_handlers; if (!virtio_serial_flow_control_enabled(&vcon->port)) { @@ -129,15 +135,8 @@ static int generic_port_init(VirtConsole *vcon, VirtIOSerialPort *port) info->guest_open = guest_open; info->guest_close = guest_close; } - return 0; -} - -/* Virtio Console Ports */ -static int virtconsole_initfn(VirtIOSerialPort *port) -{ - VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port); - return generic_port_init(vcon, port); + return 0; } static int virtconsole_exitfn(VirtIOSerialPort *port) @@ -175,26 +174,10 @@ static void virtconsole_register(void) } device_init(virtconsole_register) -/* Generic Virtio Serial Ports */ -static int virtserialport_initfn(VirtIOSerialPort *port) -{ - VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port); - - if (port->id == 0) { - /* - * Disallow a generic port at id 0, that's reserved for - * console ports. - */ - error_report("Port number 0 on virtio-serial devices reserved for virtconsole devices for backward compatibility."); - return -1; - } - return generic_port_init(vcon, port); -} - static VirtIOSerialPortInfo virtserialport_info = { .qdev.name = "virtserialport", .qdev.size = sizeof(VirtConsole), - .init = virtserialport_initfn, + .init = virtconsole_initfn, .exit = virtconsole_exitfn, .qdev.props = (Property[]) { DEFINE_PROP_UINT32("nr", VirtConsole, port.id, VIRTIO_CONSOLE_BAD_ID), -- 1.7.7.4