• Rusty Russell's avatar
    virtio: reset function · 6e5aa7ef
    Rusty Russell authored
    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: default avatarRusty Russell <rusty@rustcorp.com.au>
    6e5aa7ef
virtio.c 4.53 KB