Skip to content
  • Alex Williamson's avatar
    vfio: Add device tracking during unbind · 60720a0f
    Alex Williamson authored
    
    
    There's a small window between the vfio bus driver calling
    vfio_del_group_dev() and the device being completely unbound where
    the vfio group appears to be non-viable.  This creates a race for
    users like QEMU/KVM where the kvm-vfio module tries to get an
    external reference to the group in order to match and release an
    existing reference, while the device is potentially being removed
    from the vfio bus driver.  If the group is momentarily non-viable,
    kvm-vfio may not be able to release the group reference until VM
    shutdown, making the group unusable until that point.
    
    Bridge the gap between device removal from the group and completion
    of the driver unbind by tracking it in a list.  The device is added
    to the list before the bus driver reference is released and removed
    using the existing unbind notifier.
    
    Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
    60720a0f