virtio: reset function
A reset function solves three problems:
1) It allows us to renegotiate features, eg. if we want to upgrade a
guest driver without rebooting the guest.
2) It gives us a clean way of shutting down virtqueues: after a reset,
we know that the buffers won't be used by the host, and
3) It helps the guest recover from messed-up drivers.
So we remove the ->shutdown hook, and the only way we now remove
feature bits is via reset.
We leave it to the driver to do the reset before it deletes queues:
the balloon driver, for example, needs to chat to the host in its
remove function.
Signed-off-by:
Rusty Russell <rusty@rustcorp.com.au>
Showing
- Documentation/lguest/lguest.c 52 additions, 10 deletionsDocumentation/lguest/lguest.c
- drivers/block/virtio_blk.c 5 additions, 1 deletiondrivers/block/virtio_blk.c
- drivers/lguest/lguest_device.c 13 additions, 1 deletiondrivers/lguest/lguest_device.c
- drivers/net/virtio_net.c 3 additions, 2 deletionsdrivers/net/virtio_net.c
- drivers/virtio/virtio.c 10 additions, 2 deletionsdrivers/virtio/virtio.c
- drivers/virtio/virtio_ring.c 0 additions, 11 deletionsdrivers/virtio/virtio_ring.c
- include/linux/virtio.h 0 additions, 5 deletionsinclude/linux/virtio.h
- include/linux/virtio_config.h 4 additions, 0 deletionsinclude/linux/virtio_config.h
Loading
Please register or sign in to comment