virtio_console: free buffers after reset
Console driver is out of spec. The spec says:
A driver MUST NOT decrement the available idx on a live
virtqueue (ie. there is no way to “unexpose” buffers).
and it does exactly that by trying to detach unused buffers
without doing a device reset first.
Defer detaching the buffers until device unplug.
Of course this means we might get an interrupt for
a vq without an attached port now. Handle that by
discarding the consumed buffer.
Reported-by: Tiwei Bie <[email protected]>
Fixes: b3258ff1d6 ("virtio: Decrement avail idx on buffer detach")
Cc: [email protected]
Signed-off-by: Michael S. Tsirkin <[email protected]>