diff --git a/hw/virtio-serial-bus.c b/hw/virtio-serial-bus.c index 7e100d0def7035d2dbbaa36f124aecc797cfb123..403268fa3050e01abb65ba4232cad2d09eb644ec 100644 --- a/hw/virtio-serial-bus.c +++ b/hw/virtio-serial-bus.c @@ -520,6 +520,8 @@ static int virtser_port_qdev_exit(DeviceState *qdev) VirtIOSerialPort *port = DO_UPCAST(VirtIOSerialPort, dev, &dev->qdev); VirtIOSerial *vser = port->vser; + send_control_event(port, VIRTIO_CONSOLE_PORT_REMOVE, 1); + /* * Don't decrement nr_ports here; thus we keep a linearly * increasing port id. Not utilising an id again saves us a couple diff --git a/hw/virtio-serial.h b/hw/virtio-serial.h index 28ea7da8b741c3bc26dd10e974529abc4baafd1f..f297b0068934ff6747b622eabc86070cc0efeb4d 100644 --- a/hw/virtio-serial.h +++ b/hw/virtio-serial.h @@ -51,6 +51,7 @@ struct virtio_console_control { #define VIRTIO_CONSOLE_RESIZE 2 #define VIRTIO_CONSOLE_PORT_OPEN 3 #define VIRTIO_CONSOLE_PORT_NAME 4 +#define VIRTIO_CONSOLE_PORT_REMOVE 5 /* == In-qemu interface == */