ixgbe: cleanup ixgbe_enumerate_functions
authorJacob Keller <jacob.e.keller@intel.com>
Sat, 31 Aug 2013 02:45:38 +0000 (02:45 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Thu, 24 Oct 2013 13:02:06 +0000 (06:02 -0700)
This function previously had the same check as used by the
ixgbe_pcie_from_parent. As the hardcode is due to the device having an internal
switch, this function should simply use the call from ixgbe_pcie_from_parent.
This reduces code complexity and makes it less likely a developer will forget
to update the list in the future.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c

index 43b777aad2880857682353f83cd946048ee2278b..6828d0e7dc42b5afd3dbfb2a8a791390ba87a049 100644 (file)
@@ -7362,19 +7362,16 @@ static const struct net_device_ops ixgbe_netdev_ops = {
  **/
 static inline int ixgbe_enumerate_functions(struct ixgbe_adapter *adapter)
 {
-       struct ixgbe_hw *hw = &adapter->hw;
        struct list_head *entry;
        int physfns = 0;
 
-       /* Some cards can not use the generic count PCIe functions method, and
-        * so must be hardcoded to the correct value.
+       /* Some cards can not use the generic count PCIe functions method,
+        * because they are behind a parent switch, so we hardcode these with
+        * the correct number of functions.
         */
-       switch (hw->device_id) {
-       case IXGBE_DEV_ID_82599_SFP_SF_QP:
-       case IXGBE_DEV_ID_82599_QSFP_SF_QP:
+       if (ixgbe_pcie_from_parent(&adapter->hw)) {
                physfns = 4;
-               break;
-       default:
+       } else {
                list_for_each(entry, &adapter->pdev->bus_list) {
                        struct pci_dev *pdev =
                                list_entry(entry, struct pci_dev, bus_list);