summaryrefslogtreecommitdiff
path: root/hw/virtio-console.c
diff options
context:
space:
mode:
authorAmit Shah <amit.shah@redhat.com>2011-03-15 14:13:09 +0530
committerAmit Shah <amit.shah@redhat.com>2011-03-21 16:56:55 +0530
commitf9a90f189c780e066039f2de3906c73c48071bb7 (patch)
tree7a45f4dadfd9bb5f672a499d7f17b84ca4359388 /hw/virtio-console.c
parentfee063c07f20b442ef4bedef834ab0a3bf55b562 (diff)
downloadqemu-f9a90f189c780e066039f2de3906c73c48071bb7.tar.gz
virtio-console: Keep chardev open for other users after hot-unplug
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.shah@redhat.com>
Diffstat (limited to 'hw/virtio-console.c')
-rw-r--r--hw/virtio-console.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/hw/virtio-console.c b/hw/virtio-console.c
index be5955868f..6b5237b3ce 100644
--- a/hw/virtio-console.c
+++ b/hw/virtio-console.c
@@ -82,7 +82,11 @@ static int virtconsole_exitfn(VirtIOSerialPort *port)
VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port);
if (vcon->chr) {
- 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;