mirror of https://gitee.com/openkylin/linux.git
i40e: Drop dead code and flags from Tx hotpath
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>
This commit is contained in:
parent
a5e9c57264
commit
b194130627
|
@ -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
|
||||
|
@ -1785,16 +1764,16 @@ static netdev_tx_t i40e_xmit_frame_ring(struct sk_buff *skb,
|
|||
|
||||
skb_tx_timestamp(skb);
|
||||
|
||||
/* Always offload the checksum, since it's in the data descriptor */
|
||||
if (i40e_tx_csum(tx_ring, skb, tx_flags, protocol))
|
||||
tx_flags |= I40E_TX_FLAGS_CSUM;
|
||||
|
||||
/* always enable offload insertion */
|
||||
/* always enable CRC insertion offload */
|
||||
td_cmd |= I40E_TX_DESC_CMD_ICRC;
|
||||
|
||||
if (tx_flags & I40E_TX_FLAGS_CSUM)
|
||||
/* Always offload the checksum, since it's in the data descriptor */
|
||||
if (skb->ip_summed == CHECKSUM_PARTIAL) {
|
||||
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);
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue