aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ixgbe
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ixgbe')
-rw-r--r--drivers/net/ixgbe/ixgbe_main.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index 4a0102218d39..a961da2f98c0 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -5996,6 +5996,7 @@ static int __devinit ixgbe_probe(struct pci_dev *pdev,
5996 const struct ixgbe_info *ii = ixgbe_info_tbl[ent->driver_data]; 5996 const struct ixgbe_info *ii = ixgbe_info_tbl[ent->driver_data];
5997 static int cards_found; 5997 static int cards_found;
5998 int i, err, pci_using_dac; 5998 int i, err, pci_using_dac;
5999 unsigned int indices = num_possible_cpus();
5999#ifdef IXGBE_FCOE 6000#ifdef IXGBE_FCOE
6000 u16 device_caps; 6001 u16 device_caps;
6001#endif 6002#endif
@@ -6034,7 +6035,18 @@ static int __devinit ixgbe_probe(struct pci_dev *pdev,
6034 pci_set_master(pdev); 6035 pci_set_master(pdev);
6035 pci_save_state(pdev); 6036 pci_save_state(pdev);
6036 6037
6037 netdev = alloc_etherdev_mq(sizeof(struct ixgbe_adapter), MAX_TX_QUEUES); 6038 if (ii->mac == ixgbe_mac_82598EB)
6039 indices = min_t(unsigned int, indices, IXGBE_MAX_RSS_INDICES);
6040 else
6041 indices = min_t(unsigned int, indices, IXGBE_MAX_FDIR_INDICES);
6042
6043 indices = max_t(unsigned int, indices, IXGBE_MAX_DCB_INDICES);
6044#ifdef IXGBE_FCOE
6045 indices += min_t(unsigned int, num_possible_cpus(),
6046 IXGBE_MAX_FCOE_INDICES);
6047#endif
6048 indices = min_t(unsigned int, indices, MAX_TX_QUEUES);
6049 netdev = alloc_etherdev_mq(sizeof(struct ixgbe_adapter), indices);
6038 if (!netdev) { 6050 if (!netdev) {
6039 err = -ENOMEM; 6051 err = -ENOMEM;
6040 goto err_alloc_etherdev; 6052 goto err_alloc_etherdev;