mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-03-11 23:27:42 +07:00
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;
|
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
|
* i40e_tso - set up the tso context descriptor
|
||||||
* @tx_ring: ptr to the ring to send
|
* @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);
|
skb_tx_timestamp(skb);
|
||||||
|
|
||||||
/* Always offload the checksum, since it's in the data descriptor */
|
/* always enable CRC insertion offload */
|
||||||
if (i40e_tx_csum(tx_ring, skb, tx_flags, protocol))
|
|
||||||
tx_flags |= I40E_TX_FLAGS_CSUM;
|
|
||||||
|
|
||||||
/* always enable offload insertion */
|
|
||||||
td_cmd |= I40E_TX_DESC_CMD_ICRC;
|
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,
|
i40e_tx_enable_csum(skb, tx_flags, &td_cmd, &td_offset,
|
||||||
tx_ring, &cd_tunneling);
|
tx_ring, &cd_tunneling);
|
||||||
|
}
|
||||||
|
|
||||||
i40e_create_tx_ctx(tx_ring, cd_type_cmd_tso_mss,
|
i40e_create_tx_ctx(tx_ring, cd_type_cmd_tso_mss,
|
||||||
cd_tunneling, cd_l2tag2);
|
cd_tunneling, cd_l2tag2);
|
||||||
|
@ -102,7 +102,6 @@
|
|||||||
#define I40E_TX_FLAGS_IPV6 (u32)(1 << 5)
|
#define I40E_TX_FLAGS_IPV6 (u32)(1 << 5)
|
||||||
#define I40E_TX_FLAGS_FCCRC (u32)(1 << 6)
|
#define I40E_TX_FLAGS_FCCRC (u32)(1 << 6)
|
||||||
#define I40E_TX_FLAGS_FSO (u32)(1 << 7)
|
#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_MASK 0xffff0000
|
||||||
#define I40E_TX_FLAGS_VLAN_PRIO_MASK 0xe0000000
|
#define I40E_TX_FLAGS_VLAN_PRIO_MASK 0xe0000000
|
||||||
#define I40E_TX_FLAGS_VLAN_PRIO_SHIFT 29
|
#define I40E_TX_FLAGS_VLAN_PRIO_SHIFT 29
|
||||||
|
Loading…
Reference in New Issue
Block a user