[1/2] virtio-console: Keep chardev open for other users after hot-unplug

Message ID c6fb5f827e990d6d98e702050adcf38fbba237b8.1300179439.git.amit.shah@redhat.com
State New
Headers show

Commit Message

Amit Shah March 15, 2011, 9 a.m.
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>
 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;