After a hot-unplug operation, the previous behaviour was to close the chardev. That meant the chardev couldn't be re-used. Also, since chardev hot-plug isn't possible so far, this means virtio-console hot-plug isn't feasible as well.
With this change, the chardev is kept around. A new virtio-console channel can then be hot-plugged with the same chardev and things will continue to work. Signed-off-by: Amit Shah <amit.s...@redhat.com> --- hw/virtio-console.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) diff --git a/hw/virtio-console.c b/hw/virtio-console.c index c235b27..84ed572 100644 --- a/hw/virtio-console.c +++ b/hw/virtio-console.c @@ -82,7 +82,11 @@ static int virtconsole_exitfn(VirtIOSerialPort *port) if (vcon->chr) { port->info->have_data = NULL; - qemu_chr_close(vcon->chr); + /* + * Instead of closing the chardev, free it so it can be used + * for other purposes. + */ + qemu_chr_add_handlers(vcon->chr, NULL, NULL, NULL, NULL); } return 0; -- 1.7.4