Skip to content

Commit

Permalink
igb: Use pci_vfs_assigned instead of igb_vfs_are_assigned
Browse files Browse the repository at this point in the history
This change makes it so that the igb driver uses the generic helper
pci_vfs_assigned instead of the igb specific function igb_vfs_are_assigned.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Sibai Li <sibai.li@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
  • Loading branch information
Alexander Duyck authored and Jeff Kirsher committed Apr 25, 2013
1 parent 5a8eb24 commit b09186d
Showing 1 changed file with 1 addition and 35 deletions.
36 changes: 1 addition & 35 deletions drivers/net/ethernet/intel/igb/igb_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,6 @@ static void igb_check_vf_rate_limit(struct igb_adapter *);

#ifdef CONFIG_PCI_IOV
static int igb_vf_configure(struct igb_adapter *adapter, int vf);
static bool igb_vfs_are_assigned(struct igb_adapter *adapter);
#endif

#ifdef CONFIG_PM
Expand Down Expand Up @@ -2402,7 +2401,7 @@ static int igb_disable_sriov(struct pci_dev *pdev)
/* reclaim resources allocated to VFs */
if (adapter->vf_data) {
/* disable iov and allow time for transactions to clear */
if (igb_vfs_are_assigned(adapter)) {
if (pci_vfs_assigned(pdev)) {
dev_warn(&pdev->dev,
"Cannot deallocate SR-IOV virtual functions while they are assigned - VFs will not be deallocated\n");
return -EPERM;
Expand Down Expand Up @@ -5242,39 +5241,6 @@ static int igb_vf_configure(struct igb_adapter *adapter, int vf)
return 0;
}

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

switch (adapter->hw.mac.type) {
case e1000_82576:
dev_id = IGB_82576_VF_DEV_ID;
break;
case e1000_i350:
dev_id = IGB_I350_VF_DEV_ID;
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
static void igb_ping_all_vfs(struct igb_adapter *adapter)
{
Expand Down

0 comments on commit b09186d

Please sign in to comment.