Skip to content
  • Paolo Bonzini's avatar
    qdev: switch reset to post-order · dcc20931
    Paolo Bonzini authored
    
    
    Post-order is the only sensible direction for the reset signals.
    For example, suppose pre-order is used and the parent has some data
    structures that cache children state (for example a list of active
    requests).  When the reset method is invoked on the parent, these caches
    could be in any state.
    
    If post-order is used, on the other hand, these will be in a known state
    when the reset method is invoked on the parent.
    
    This change means that it is no longer possible to block the visit of
    the devices, so the callback is changed to return void.  This is not
    a problem, because PCI was returning 1 exactly in order to achieve the
    same ordering that this patch implements.
    
    PCI can then rely on the qdev core having sent a "reset signal" (whatever
    that means) to the device, and only do the PCI-specific initialization
    with pci_do_device_reset.
    
    MST: fixed up virtio-ccw
    
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    dcc20931