Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e507d0cd authored by Alexander Duyck's avatar Alexander Duyck Committed by Jeff Kirsher
Browse files

ixgbe: Use pci_vfs_assigned instead of ixgbe_vfs_are_assigned



This change makes it so that the ixgbe driver uses the generic helper
pci_vfs_assigned instead of the ixgbe specific function
ixgbe_vfs_are_assigned.

Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@intel.com>
Tested-by: default avatarStephen Ko <stephen.s.ko@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent 670224f1
Loading
Loading
Loading
Loading
+1 −34
Original line number Original line Diff line number Diff line
@@ -173,39 +173,6 @@ void ixgbe_enable_sriov(struct ixgbe_adapter *adapter)
	ixgbe_disable_sriov(adapter);
	ixgbe_disable_sriov(adapter);
}
}


static bool ixgbe_vfs_are_assigned(struct ixgbe_adapter *adapter)
{
	struct pci_dev *pdev = adapter->pdev;
	struct pci_dev *vfdev;
	int dev_id;

	switch (adapter->hw.mac.type) {
	case ixgbe_mac_82599EB:
		dev_id = IXGBE_DEV_ID_82599_VF;
		break;
	case ixgbe_mac_X540:
		dev_id = IXGBE_DEV_ID_X540_VF;
		break;
	default:
		return false;
	}

	/* loop through all the VFs to see if we own any that are assigned */
	vfdev = pci_get_device(PCI_VENDOR_ID_INTEL, dev_id, NULL);
	while (vfdev) {
		/* if we don't own it we don't care */
		if (vfdev->is_virtfn && vfdev->physfn == pdev) {
			/* if it is assigned we cannot release it */
			if (vfdev->dev_flags & PCI_DEV_FLAGS_ASSIGNED)
				return true;
		}

		vfdev = pci_get_device(PCI_VENDOR_ID_INTEL, dev_id, vfdev);
	}

	return false;
}

#endif /* #ifdef CONFIG_PCI_IOV */
#endif /* #ifdef CONFIG_PCI_IOV */
int ixgbe_disable_sriov(struct ixgbe_adapter *adapter)
int ixgbe_disable_sriov(struct ixgbe_adapter *adapter)
{
{
@@ -235,7 +202,7 @@ int ixgbe_disable_sriov(struct ixgbe_adapter *adapter)
	 * without causing issues, so just leave the hardware
	 * without causing issues, so just leave the hardware
	 * available but disabled
	 * available but disabled
	 */
	 */
	if (ixgbe_vfs_are_assigned(adapter)) {
	if (pci_vfs_assigned(adapter->pdev)) {
		e_dev_warn("Unloading driver while VFs are assigned - VFs will not be deallocated\n");
		e_dev_warn("Unloading driver while VFs are assigned - VFs will not be deallocated\n");
		return -EPERM;
		return -EPERM;
	}
	}