aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Duyck <alexander.h.duyck@intel.com>2012-07-16 21:20:28 -0400
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2012-07-21 19:07:13 -0400
commitb724e9f2505513df1455b03efea166f7dfa0f7d5 (patch)
treee3adfd2ce6e601a381d70094922909d713be19e3
parentb6dfd939fdc249fcf8cd7b8006f76239b33eb581 (diff)
ixgbe: Use 1TC DCB instead of disabling DCB for MSI and legacy interrupts
This change makes it so that we can use 1TC DCB in the case of MSI and legacy interrupts. The advantage to this is that it allows us to fully support FCoE w/ DCB instead of having to drop to link flow control only when using these interrupt modes. Cc: John Fastabend <john.r.fastabend@intel.com> Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Tested-by: Ross Brattain <ross.b.brattain@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c18
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_main.c6
2 files changed, 17 insertions, 7 deletions
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
index 29a2a8528073..17ecbcedd548 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
@@ -1065,11 +1065,27 @@ static void ixgbe_set_interrupt_capability(struct ixgbe_adapter *adapter)
1065 return; 1065 return;
1066 } 1066 }
1067 1067
1068 adapter->flags &= ~IXGBE_FLAG_DCB_ENABLED; 1068 /* disable DCB if number of TCs exceeds 1 */
1069 if (netdev_get_num_tc(adapter->netdev) > 1) {
1070 e_err(probe, "num TCs exceeds number of queues - disabling DCB\n");
1071 netdev_reset_tc(adapter->netdev);
1069 1072
1073 if (adapter->hw.mac.type == ixgbe_mac_82598EB)
1074 adapter->hw.fc.requested_mode = adapter->last_lfc_mode;
1075
1076 adapter->flags &= ~IXGBE_FLAG_DCB_ENABLED;
1077 adapter->temp_dcb_cfg.pfc_mode_enable = false;
1078 adapter->dcb_cfg.pfc_mode_enable = false;
1079 }
1080 adapter->dcb_cfg.num_tcs.pg_tcs = 1;
1081 adapter->dcb_cfg.num_tcs.pfc_tcs = 1;
1082
1083 /* disable SR-IOV */
1070 ixgbe_disable_sriov(adapter); 1084 ixgbe_disable_sriov(adapter);
1071 1085
1086 /* disable RSS */
1072 adapter->ring_feature[RING_F_RSS].limit = 1; 1087 adapter->ring_feature[RING_F_RSS].limit = 1;
1088
1073 ixgbe_set_num_queues(adapter); 1089 ixgbe_set_num_queues(adapter);
1074 adapter->num_q_vectors = 1; 1090 adapter->num_q_vectors = 1;
1075 1091
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 30699815451c..3b6784cf134a 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -6703,12 +6703,6 @@ int ixgbe_setup_tc(struct net_device *dev, u8 tc)
6703 struct ixgbe_adapter *adapter = netdev_priv(dev); 6703 struct ixgbe_adapter *adapter = netdev_priv(dev);
6704 struct ixgbe_hw *hw = &adapter->hw; 6704 struct ixgbe_hw *hw = &adapter->hw;
6705 6705
6706 /* Multiple traffic classes requires multiple queues */
6707 if (!(adapter->flags & IXGBE_FLAG_MSIX_ENABLED)) {
6708 e_err(drv, "Enable failed, needs MSI-X\n");
6709 return -EINVAL;
6710 }
6711
6712 /* Hardware supports up to 8 traffic classes */ 6706 /* Hardware supports up to 8 traffic classes */
6713 if (tc > adapter->dcb_cfg.num_tcs.pg_tcs || 6707 if (tc > adapter->dcb_cfg.num_tcs.pg_tcs ||
6714 (hw->mac.type == ixgbe_mac_82598EB && 6708 (hw->mac.type == ixgbe_mac_82598EB &&