aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel
diff options
context:
space:
mode:
authorAlexander Duyck <alexander.h.duyck@intel.com>2012-10-30 02:01:45 -0400
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2013-01-19 07:06:14 -0500
commitc44f5f516e0b830f560ade66847433f88a4bcc3a (patch)
tree0ddecdb7e1fc4446153718c8eef7eb7a5497e4e7 /drivers/net/ethernet/intel
parent8f4fbb9bfc8f0eac8932d45f57e29507d5b631a3 (diff)
ixgbe: Always use context 0, even for FCoE and TSO
We were spending cycles separating the FCoE and TSO contexts even though we always overwriting the context anyway. Instead of doing that we can just use context 0 for all descriptors. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel')
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c3
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_main.c11
2 files changed, 2 insertions, 12 deletions
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c
index 252850d9a3e0..c88aa1c85862 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c
@@ -550,9 +550,8 @@ int ixgbe_fso(struct ixgbe_ring *tx_ring,
550 /* set flag indicating FCOE to ixgbe_tx_map call */ 550 /* set flag indicating FCOE to ixgbe_tx_map call */
551 first->tx_flags |= IXGBE_TX_FLAGS_FCOE; 551 first->tx_flags |= IXGBE_TX_FLAGS_FCOE;
552 552
553 /* mss_l4len_id: use 1 for FSO as TSO, no need for L4LEN */ 553 /* mss_l4len_id: use 0 for FSO as TSO, no need for L4LEN */
554 mss_l4len_idx = skb_shinfo(skb)->gso_size << IXGBE_ADVTXD_MSS_SHIFT; 554 mss_l4len_idx = skb_shinfo(skb)->gso_size << IXGBE_ADVTXD_MSS_SHIFT;
555 mss_l4len_idx |= 1 << IXGBE_ADVTXD_IDX_SHIFT;
556 555
557 /* vlan_macip_lens: HEADLEN, MACLEN, VLAN tag */ 556 /* vlan_macip_lens: HEADLEN, MACLEN, VLAN tag */
558 vlan_macip_lens = skb_transport_offset(skb) + 557 vlan_macip_lens = skb_transport_offset(skb) +
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index e197cc2493eb..2e2bf3360781 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -5944,10 +5944,9 @@ static int ixgbe_tso(struct ixgbe_ring *tx_ring,
5944 first->gso_segs = skb_shinfo(skb)->gso_segs; 5944 first->gso_segs = skb_shinfo(skb)->gso_segs;
5945 first->bytecount += (first->gso_segs - 1) * *hdr_len; 5945 first->bytecount += (first->gso_segs - 1) * *hdr_len;
5946 5946
5947 /* mss_l4len_id: use 1 as index for TSO */ 5947 /* mss_l4len_id: use 0 as index for TSO */
5948 mss_l4len_idx = l4len << IXGBE_ADVTXD_L4LEN_SHIFT; 5948 mss_l4len_idx = l4len << IXGBE_ADVTXD_L4LEN_SHIFT;
5949 mss_l4len_idx |= skb_shinfo(skb)->gso_size << IXGBE_ADVTXD_MSS_SHIFT; 5949 mss_l4len_idx |= skb_shinfo(skb)->gso_size << IXGBE_ADVTXD_MSS_SHIFT;
5950 mss_l4len_idx |= 1 << IXGBE_ADVTXD_IDX_SHIFT;
5951 5950
5952 /* vlan_macip_lens: HEADLEN, MACLEN, VLAN tag */ 5951 /* vlan_macip_lens: HEADLEN, MACLEN, VLAN tag */
5953 vlan_macip_lens = skb_network_header_len(skb); 5952 vlan_macip_lens = skb_network_header_len(skb);
@@ -6073,14 +6072,6 @@ static void ixgbe_tx_olinfo_status(union ixgbe_adv_tx_desc *tx_desc,
6073 if (tx_flags & IXGBE_TX_FLAGS_IPV4) 6072 if (tx_flags & IXGBE_TX_FLAGS_IPV4)
6074 olinfo_status |= cpu_to_le32(IXGBE_ADVTXD_POPTS_IXSM); 6073 olinfo_status |= cpu_to_le32(IXGBE_ADVTXD_POPTS_IXSM);
6075 6074
6076 /* use index 1 context for TSO/FSO/FCOE */
6077#ifdef IXGBE_FCOE
6078 if (tx_flags & (IXGBE_TX_FLAGS_TSO | IXGBE_TX_FLAGS_FCOE))
6079#else
6080 if (tx_flags & IXGBE_TX_FLAGS_TSO)
6081#endif
6082 olinfo_status |= cpu_to_le32(1 << IXGBE_ADVTXD_IDX_SHIFT);
6083
6084 /* 6075 /*
6085 * Check Context must be set if Tx switch is enabled, which it 6076 * Check Context must be set if Tx switch is enabled, which it
6086 * always is for case where virtual functions are running 6077 * always is for case where virtual functions are running