Revision 7edfe652

b/hw/virtio-console.c
74 74
    }
75 75
}
76 76

  
77
static int generic_port_init(VirtConsole *vcon, VirtIOSerialPort *port)
77
static int virtconsole_initfn(VirtIOSerialPort *port)
78 78
{
79
    VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port);
79 80
    VirtIOSerialPortInfo *info = DO_UPCAST(VirtIOSerialPortInfo, qdev,
80 81
                                           vcon->port.dev.info);
81 82

  
83
    if (port->id == 0 && !info->is_console) {
84
        error_report("Port number 0 on virtio-serial devices reserved for virtconsole devices for backward compatibility.");
85
        return -1;
86
    }
87

  
82 88
    if (vcon->chr) {
83 89
        qemu_chr_add_handlers(vcon->chr, chr_can_read, chr_read, chr_event,
84 90
                              vcon);
......
86 92
        info->guest_open = guest_open;
87 93
        info->guest_close = guest_close;
88 94
    }
89
    return 0;
90
}
91

  
92
/* Virtio Console Ports */
93
static int virtconsole_initfn(VirtIOSerialPort *port)
94
{
95
    VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port);
96 95

  
97
    return generic_port_init(vcon, port);
96
    return 0;
98 97
}
99 98

  
100 99
static int virtconsole_exitfn(VirtIOSerialPort *port)
......
132 131
}
133 132
device_init(virtconsole_register)
134 133

  
135
/* Generic Virtio Serial Ports */
136
static int virtserialport_initfn(VirtIOSerialPort *port)
137
{
138
    VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port);
139

  
140
    if (port->id == 0) {
141
        /*
142
         * Disallow a generic port at id 0, that's reserved for
143
         * console ports.
144
         */
145
        error_report("Port number 0 on virtio-serial devices reserved for virtconsole devices for backward compatibility.");
146
        return -1;
147
    }
148
    return generic_port_init(vcon, port);
149
}
150

  
151 134
static VirtIOSerialPortInfo virtserialport_info = {
152 135
    .qdev.name     = "virtserialport",
153 136
    .qdev.size     = sizeof(VirtConsole),
154
    .init          = virtserialport_initfn,
137
    .init          = virtconsole_initfn,
155 138
    .exit          = virtconsole_exitfn,
156 139
    .qdev.props = (Property[]) {
157 140
        DEFINE_PROP_UINT32("nr", VirtConsole, port.id, VIRTIO_CONSOLE_BAD_ID),

Also available in: Unified diff