Skip to content
  • Alex Williamson's avatar
    vfio: Test realized when using VFIOGroup.device_list iterator · 7da624e2
    Alex Williamson authored
    
    
    VFIOGroup.device_list is effectively our reference tracking mechanism
    such that we can teardown a group when all of the device references
    are removed.  However, we also use this list from our machine reset
    handler for processing resets that affect multiple devices.  Generally
    device removals are fully processed (exitfn + finalize) when this
    reset handler is invoked, however if the removal is triggered via
    another reset handler (piix4_reset->acpi_pcihp_reset) then the device
    exitfn may run, but not finalize.  In this case we hit asserts when
    we start trying to access PCI helpers since much of the PCI state of
    the device is released.  To resolve this, add a pointer to the Object
    DeviceState in our common base-device and skip non-realized devices
    as we iterate.
    
    Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
    7da624e2