diff options
Diffstat (limited to 'drivers/char/virtio_console.c')
| -rw-r--r-- | drivers/char/virtio_console.c | 8 | 
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c index 49039318633..84b164d1eb2 100644 --- a/drivers/char/virtio_console.c +++ b/drivers/char/virtio_console.c @@ -388,6 +388,10 @@ static void discard_port_data(struct port *port)  	unsigned int len;  	int ret; +	if (!port->portdev) { +		/* Device has been unplugged.  vqs are already gone. */ +		return; +	}  	vq = port->in_vq;  	if (port->inbuf)  		buf = port->inbuf; @@ -470,6 +474,10 @@ static void reclaim_consumed_buffers(struct port *port)  	void *buf;  	unsigned int len; +	if (!port->portdev) { +		/* Device has been unplugged.  vqs are already gone. */ +		return; +	}  	while ((buf = virtqueue_get_buf(port->out_vq, &len))) {  		kfree(buf);  		port->outvq_full = false;  |