• Alex Williamson's avatar
    ixgbe: Remove bimodal SR-IOV disabling · 7837e286
    Alex Williamson authored
    When unbinding an SR-IOV device with VFs configured from ixgbe, the
    driver behaves in one of two ways.  If max_vfs was specified, the
    SR-IOV state is disabled, removing the VFs.  The occurs regardless of
    whether the VF count was later modified through sysfs.  If however
    max_vfs is zero, such as by not specifying the module parameter, the
    VFs persist after the PF is unbound from ixgbe.  If the PF is then
    bound to vfio-pci to be assigned to a VM, the PF is non-functional.
    
    >From the comment, commit da36b647 ("ixgbe: Implement PCI SR-IOV
    sysfs callback operation") clearly intended this alternate behavior,
    but probably didn't realize the PF doesn't work in this mode.
    
    This bimodal behavior is confusing to users and results in a state
    where the PF is broken for other uses unless the user sets
    sriov_numvfs to zero prior to unbinding the device.  Remove this
    behavior so that VFs are removed and the PF is functional for other
    uses after unbind, regardless of the way VFs are enabled.
    Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
    Acked-by: default avatarGreg Rose <gregory.v.rose@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    7837e286
ixgbe_main.c 254 KB