virtio: reset function
authorRusty Russell <rusty@rustcorp.com.au>
Tue, 5 Feb 2008 04:50:03 +0000 (23:50 -0500)
committerRusty Russell <rusty@rustcorp.com.au>
Mon, 4 Feb 2008 12:50:03 +0000 (23:50 +1100)
commit6e5aa7efb27aec7e55b6463fa2c8db594c4226fa
tree060a955e711ac224136157a5410e88dcdab965af
parentb3369c1fb410fddeb38a404316c861395f6d6ae8
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>
Documentation/lguest/lguest.c
drivers/block/virtio_blk.c
drivers/lguest/lguest_device.c
drivers/net/virtio_net.c
drivers/virtio/virtio.c
drivers/virtio/virtio_ring.c
include/linux/virtio.h
include/linux/virtio_config.h