aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSathya Perla <sathya.perla@emulex.com>2013-06-14 06:24:51 -0400
committerDavid S. Miller <davem@davemloft.net>2013-06-20 00:23:19 -0400
commit257a3feb3f144783184adb2df930331cbe36ff25 (patch)
tree9ac9db11708ddd67aff0f1e15c864d08118407c3
parentc2ff682a6f5c5ae2cb23b32bb4fd7a6fb059d4fc (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.c31
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
1265static 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
1289static void be_eqd_update(struct be_adapter *adapter, struct be_eq_obj *eqo) 1265static 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 */
4203static bool be_reset_required(struct be_adapter *adapter) 4180static 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
4208static char *mc_name(struct be_adapter *adapter) 4185static char *mc_name(struct be_adapter *adapter)