diff options
author | Sathya Perla <sathya.perla@emulex.com> | 2013-06-14 06:24:51 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-06-20 00:23:19 -0400 |
commit | 257a3feb3f144783184adb2df930331cbe36ff25 (patch) | |
tree | 9ac9db11708ddd67aff0f1e15c864d08118407c3 | |
parent | c2ff682a6f5c5ae2cb23b32bb4fd7a6fb059d4fc (diff) |
be2net: use pci_vfs_assigned()/pci_num_vf() instead of be_find_vfs()
be_find_vfs() is no longer needed as the common PCI calls provide the same
functionality.
Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ethernet/emulex/benet/be_main.c | 31 |
1 files changed, 4 insertions, 27 deletions
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c index 98efc29eaa55..cd69ac79f565 100644 --- a/drivers/net/ethernet/emulex/benet/be_main.c +++ b/drivers/net/ethernet/emulex/benet/be_main.c | |||
@@ -1262,30 +1262,6 @@ static int be_set_vf_tx_rate(struct net_device *netdev, | |||
1262 | return status; | 1262 | return status; |
1263 | } | 1263 | } |
1264 | 1264 | ||
1265 | static int be_find_vfs(struct be_adapter *adapter, int vf_state) | ||
1266 | { | ||
1267 | struct pci_dev *dev, *pdev = adapter->pdev; | ||
1268 | int vfs = 0, assigned_vfs = 0, pos; | ||
1269 | u16 offset, stride; | ||
1270 | |||
1271 | pos = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_SRIOV); | ||
1272 | if (!pos) | ||
1273 | return 0; | ||
1274 | pci_read_config_word(pdev, pos + PCI_SRIOV_VF_OFFSET, &offset); | ||
1275 | pci_read_config_word(pdev, pos + PCI_SRIOV_VF_STRIDE, &stride); | ||
1276 | |||
1277 | dev = pci_get_device(pdev->vendor, PCI_ANY_ID, NULL); | ||
1278 | while (dev) { | ||
1279 | if (dev->is_virtfn && pci_physfn(dev) == pdev) { | ||
1280 | vfs++; | ||
1281 | if (dev->dev_flags & PCI_DEV_FLAGS_ASSIGNED) | ||
1282 | assigned_vfs++; | ||
1283 | } | ||
1284 | dev = pci_get_device(pdev->vendor, PCI_ANY_ID, dev); | ||
1285 | } | ||
1286 | return (vf_state == ASSIGNED) ? assigned_vfs : vfs; | ||
1287 | } | ||
1288 | |||
1289 | static void be_eqd_update(struct be_adapter *adapter, struct be_eq_obj *eqo) | 1265 | static void be_eqd_update(struct be_adapter *adapter, struct be_eq_obj *eqo) |
1290 | { | 1266 | { |
1291 | struct be_rx_stats *stats = rx_stats(&adapter->rx_obj[eqo->idx]); | 1267 | struct be_rx_stats *stats = rx_stats(&adapter->rx_obj[eqo->idx]); |
@@ -2797,7 +2773,7 @@ static void be_vf_clear(struct be_adapter *adapter) | |||
2797 | struct be_vf_cfg *vf_cfg; | 2773 | struct be_vf_cfg *vf_cfg; |
2798 | u32 vf; | 2774 | u32 vf; |
2799 | 2775 | ||
2800 | if (be_find_vfs(adapter, ASSIGNED)) { | 2776 | if (pci_vfs_assigned(adapter->pdev)) { |
2801 | dev_warn(&adapter->pdev->dev, | 2777 | dev_warn(&adapter->pdev->dev, |
2802 | "VFs are assigned to VMs: not disabling VFs\n"); | 2778 | "VFs are assigned to VMs: not disabling VFs\n"); |
2803 | goto done; | 2779 | goto done; |
@@ -2899,7 +2875,7 @@ static int be_vf_setup(struct be_adapter *adapter) | |||
2899 | int status, old_vfs, vf; | 2875 | int status, old_vfs, vf; |
2900 | struct device *dev = &adapter->pdev->dev; | 2876 | struct device *dev = &adapter->pdev->dev; |
2901 | 2877 | ||
2902 | old_vfs = be_find_vfs(adapter, ENABLED); | 2878 | old_vfs = pci_num_vf(adapter->pdev); |
2903 | if (old_vfs) { | 2879 | if (old_vfs) { |
2904 | dev_info(dev, "%d VFs are already enabled\n", old_vfs); | 2880 | dev_info(dev, "%d VFs are already enabled\n", old_vfs); |
2905 | if (old_vfs != num_vfs) | 2881 | if (old_vfs != num_vfs) |
@@ -4200,9 +4176,10 @@ reschedule: | |||
4200 | schedule_delayed_work(&adapter->work, msecs_to_jiffies(1000)); | 4176 | schedule_delayed_work(&adapter->work, msecs_to_jiffies(1000)); |
4201 | } | 4177 | } |
4202 | 4178 | ||
4179 | /* If any VFs are already enabled don't FLR the PF */ | ||
4203 | static bool be_reset_required(struct be_adapter *adapter) | 4180 | static bool be_reset_required(struct be_adapter *adapter) |
4204 | { | 4181 | { |
4205 | return be_find_vfs(adapter, ENABLED) > 0 ? false : true; | 4182 | return pci_num_vf(adapter->pdev) ? false : true; |
4206 | } | 4183 | } |
4207 | 4184 | ||
4208 | static char *mc_name(struct be_adapter *adapter) | 4185 | static char *mc_name(struct be_adapter *adapter) |