diff --git a/[refs] b/[refs] index 5205da3d1714..a9bb66458af2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b353a6b821627053f82b4e7b907e824cb7a6879c +refs/heads/master: e062013c7d22e40ee634b818d28fd615db36998e diff --git a/trunk/drivers/char/virtio_console.c b/trunk/drivers/char/virtio_console.c index 288701ccbf7a..c84486b3e43d 100644 --- a/trunk/drivers/char/virtio_console.c +++ b/trunk/drivers/char/virtio_console.c @@ -1738,6 +1738,14 @@ static void virtcons_remove(struct virtio_device *vdev) unregister_chrdev(portdev->chr_major, "virtio-portsdev"); + /* + * When yanking out a device, we immediately lose the + * (device-side) queues. So there's no point in keeping the + * guest side around till we drop our final reference. This + * also means that any ports which are in an open state will + * have to just stop using the port, as the vqs are going + * away. + */ if (use_multiport(portdev)) { struct port_buffer *buf; unsigned int len;