aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c
diff options
context:
space:
mode:
authorAlexander Duyck <alexander.h.duyck@intel.com>2012-11-06 21:34:28 -0500
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2013-01-19 07:13:45 -0500
commit472148c320c0d11245932ba1315bc4ec0667ed57 (patch)
tree238e269a5b81fee537bfdbf699ddf02b97ace89d /drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c
parentc44f5f516e0b830f560ade66847433f88a4bcc3a (diff)
ixgbe: Update ixgbe Tx flags to improve code efficiency
This change is meant to improve the efficiency of the Tx flags in ixgbe by aligning them with the values that will later be written into either the cmd_type or olinfo. By doing this we are able to reduce most of these functions to either just a simple shift followed by an or in the case of cmd_type, or an and followed by an or in the case of olinfo. To do this I also needed to change the logic and/or drop some flags. I dropped the IXGBE_TX_FLAGS_FSO and it was replaced by IXGBE_TX_FLAGS_TSO since the only place it was ever checked was in conjunction with IXGBE_TX_FLAGS_TSO. I replaced IXGBE_TX_FLAGS_TXSW with IXGBE_TX_FLAGS_CC, this way we have a clear point for what the flag is meant to do. Finally the IXGBE_TX_FLAGS_NO_IFCS was dropped since were are already carrying the data for that flag in the skb. Instead we can just check the bitflag in the skb. In order to avoid type conversion errors I also adjusted the locations where we were switching between CPU and little endian. 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/ixgbe/ixgbe_fcoe.c')
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c
index c88aa1c85862..496836765df8 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c
@@ -544,11 +544,11 @@ int ixgbe_fso(struct ixgbe_ring *tx_ring,
544 first->gso_segs = DIV_ROUND_UP(skb->len - *hdr_len, 544 first->gso_segs = DIV_ROUND_UP(skb->len - *hdr_len,
545 skb_shinfo(skb)->gso_size); 545 skb_shinfo(skb)->gso_size);
546 first->bytecount += (first->gso_segs - 1) * *hdr_len; 546 first->bytecount += (first->gso_segs - 1) * *hdr_len;
547 first->tx_flags |= IXGBE_TX_FLAGS_FSO; 547 first->tx_flags |= IXGBE_TX_FLAGS_TSO;
548 } 548 }
549 549
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 | IXGBE_TX_FLAGS_CC;
552 552
553 /* mss_l4len_id: use 0 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;