summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
diff options
context:
space:
mode:
authorAlexander Duyck2012-06-30 02:14:01 +0200
committerJeff Kirsher2012-07-15 01:02:32 +0200
commitd411a9368bca616b4593e4f3d820dceccdd9027e (patch)
treee2e52ba5847eeba3be641e86de75c2a6937b68b4 /drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
parentixgbe: Add function for obtaining FCoE TC based on FCoE user priority (diff)
downloadkernel-qcow2-linux-d411a9368bca616b4593e4f3d820dceccdd9027e.tar.gz
kernel-qcow2-linux-d411a9368bca616b4593e4f3d820dceccdd9027e.tar.xz
kernel-qcow2-linux-d411a9368bca616b4593e4f3d820dceccdd9027e.zip
ixgbe: Merge FCoE set_num and cache_ring calls into RSS/DCB config
This change merges the ixgbe_cache_ring_fcoe and ixgbe_set_fcoe_queues logic into the DCB and RSS initialization calls. Cc: John Fastabend <john.r.fastabend@intel.com> Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com> Tested-by: Ross Brattain <ross.b.brattain@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel/ixgbe/ixgbe_main.c')
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_main.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 3d7ce7e236e1..ee230f533ee3 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -3610,16 +3610,17 @@ static void ixgbe_configure_dcb(struct ixgbe_adapter *adapter)
if (hw->mac.type != ixgbe_mac_82598EB) {
int i;
u32 reg = 0;
+ u8 msb = 0;
+ u8 rss_i = adapter->netdev->tc_to_txq[0].count - 1;
- for (i = 0; i < MAX_TRAFFIC_CLASS; i++) {
- u8 msb = 0;
- u8 cnt = adapter->netdev->tc_to_txq[i].count;
-
- while (cnt >>= 1)
- msb++;
+ while (rss_i) {
+ msb++;
+ rss_i >>= 1;
+ }
+ for (i = 0; i < MAX_TRAFFIC_CLASS; i++)
reg |= msb << IXGBE_RQTC_SHIFT_TC(i);
- }
+
IXGBE_WRITE_REG(hw, IXGBE_RQTC, reg);
}
}
@@ -7027,7 +7028,11 @@ static int __devinit ixgbe_probe(struct pci_dev *pdev,
#endif
if (ii->mac == ixgbe_mac_82598EB)
+#ifdef CONFIG_IXGBE_DCB
+ indices = min_t(unsigned int, indices, MAX_TRAFFIC_CLASS * 4);
+#else
indices = min_t(unsigned int, indices, IXGBE_MAX_RSS_INDICES);
+#endif
else
indices = min_t(unsigned int, indices, IXGBE_MAX_FDIR_INDICES);