Skip to content

Commit

Permalink
i40e: Drop dead code and flags from Tx hotpath
Browse files Browse the repository at this point in the history
Drop Tx flag and TXSW which is tested but never set.

As a result of this change we can drop a complicated check that always
resulted in the final result of i40e_tx_csum being equal to the
CHECKSUM_PARTIAL value.  As such we can replace the entire function call
with just a check for skb->summed == CHECKSUM_PARTIAL.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
  • Loading branch information
Alexander Duyck authored and Jeff Kirsher committed Oct 10, 2013
1 parent a5e9c57 commit b194130
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 27 deletions.
31 changes: 5 additions & 26 deletions drivers/net/ethernet/intel/i40e/i40e_txrx.c
Original file line number Diff line number Diff line change
Expand Up @@ -1299,27 +1299,6 @@ static int i40e_tx_prepare_vlan_flags(struct sk_buff *skb,
return 0;
}

/**
* i40e_tx_csum - is checksum offload requested
* @tx_ring: ptr to the ring to send
* @skb: ptr to the skb we're sending
* @tx_flags: the collected send information
* @protocol: the send protocol
*
* Returns true if checksum offload is requested
**/
static bool i40e_tx_csum(struct i40e_ring *tx_ring, struct sk_buff *skb,
u32 tx_flags, __be16 protocol)
{
if ((skb->ip_summed != CHECKSUM_PARTIAL) &&
!(tx_flags & I40E_TX_FLAGS_TXSW)) {
if (!(tx_flags & I40E_TX_FLAGS_HW_VLAN))
return false;
}

return skb->ip_summed == CHECKSUM_PARTIAL;
}

/**
* i40e_tso - set up the tso context descriptor
* @tx_ring: ptr to the ring to send
Expand Down Expand Up @@ -1785,16 +1764,16 @@ static netdev_tx_t i40e_xmit_frame_ring(struct sk_buff *skb,

skb_tx_timestamp(skb);

/* always enable CRC insertion offload */
td_cmd |= I40E_TX_DESC_CMD_ICRC;

/* Always offload the checksum, since it's in the data descriptor */
if (i40e_tx_csum(tx_ring, skb, tx_flags, protocol))
if (skb->ip_summed == CHECKSUM_PARTIAL) {
tx_flags |= I40E_TX_FLAGS_CSUM;

/* always enable offload insertion */
td_cmd |= I40E_TX_DESC_CMD_ICRC;

if (tx_flags & I40E_TX_FLAGS_CSUM)
i40e_tx_enable_csum(skb, tx_flags, &td_cmd, &td_offset,
tx_ring, &cd_tunneling);
}

i40e_create_tx_ctx(tx_ring, cd_type_cmd_tso_mss,
cd_tunneling, cd_l2tag2);
Expand Down
1 change: 0 additions & 1 deletion drivers/net/ethernet/intel/i40e/i40e_txrx.h
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,6 @@
#define I40E_TX_FLAGS_IPV6 (u32)(1 << 5)
#define I40E_TX_FLAGS_FCCRC (u32)(1 << 6)
#define I40E_TX_FLAGS_FSO (u32)(1 << 7)
#define I40E_TX_FLAGS_TXSW (u32)(1 << 8)
#define I40E_TX_FLAGS_VLAN_MASK 0xffff0000
#define I40E_TX_FLAGS_VLAN_PRIO_MASK 0xe0000000
#define I40E_TX_FLAGS_VLAN_PRIO_SHIFT 29
Expand Down

0 comments on commit b194130

Please sign in to comment.