• L
    pci: autolearn name of stub driver, remove from arglist · e482693b
    Laine Stump 提交于
    virPCIDeviceReattach and virPCIDeviceUnbindFromStub (called by
    virPCIDeviceReattach) had previously required the name of the stub
    driver as input. This is unnecessary, because the name of the driver
    the device is currently bound to can be found by looking at the link:
    
      /sys/bus/pci/dddd:bb:ss.ff/driver
    
    Instead of requiring that the name of the expected stub driver name
    and only unbinding if that one name is matched, we no longer take a
    driver name in the arglist for either of these
    functions. virPCIDeviceUnbindFromStub just compares the name of the
    currently bound driver to a list of "well known" stubs (right now
    contains "pci-stub" and "vfio-pci" for qemu, and "pciback" for xen),
    and only performs the unbind if it's one of those devices.
    
    This allows virsh nodedevice-reattach to work properly across a
    libvirtd restart, and fixes a couple of cases where we were
    erroneously still hard-coding "pci-stub" as the drive name.
    
    For some unknown reason, virPCIDeviceReattach had been calling
    modprobe on the stub driver prior to unbinding the device. This was
    problematic because we no longer know the name of the stub driver in
    that function. However, it is pointless to probe for the stub driver
    at that time anyway - because the device is bound to the stub driver,
    we are guaranteed that it is already loaded, and so that call to
    modprobe has been removed.
    e482693b
virpci.c 65.3 KB