|
@@ -1171,7 +1171,7 @@ static bool ixgbe_clean_tx_irq(struct ixgbe_q_vector *q_vector,
|
|
|
struct ixgbe_adapter *adapter = q_vector->adapter;
|
|
|
struct ixgbe_tx_buffer *tx_buffer;
|
|
|
union ixgbe_adv_tx_desc *tx_desc;
|
|
|
- unsigned int total_bytes = 0, total_packets = 0;
|
|
|
+ unsigned int total_bytes = 0, total_packets = 0, total_ipsec = 0;
|
|
|
unsigned int budget = q_vector->tx.work_limit;
|
|
|
unsigned int i = tx_ring->next_to_clean;
|
|
|
|
|
@@ -1202,6 +1202,8 @@ static bool ixgbe_clean_tx_irq(struct ixgbe_q_vector *q_vector,
|
|
|
/* update the statistics for this packet */
|
|
|
total_bytes += tx_buffer->bytecount;
|
|
|
total_packets += tx_buffer->gso_segs;
|
|
|
+ if (tx_buffer->tx_flags & IXGBE_TX_FLAGS_IPSEC)
|
|
|
+ total_ipsec++;
|
|
|
|
|
|
/* free the skb */
|
|
|
if (ring_is_xdp(tx_ring))
|
|
@@ -1264,6 +1266,7 @@ static bool ixgbe_clean_tx_irq(struct ixgbe_q_vector *q_vector,
|
|
|
u64_stats_update_end(&tx_ring->syncp);
|
|
|
q_vector->tx.total_bytes += total_bytes;
|
|
|
q_vector->tx.total_packets += total_packets;
|
|
|
+ adapter->tx_ipsec += total_ipsec;
|
|
|
|
|
|
if (check_for_tx_hang(tx_ring) && ixgbe_check_tx_hang(tx_ring)) {
|
|
|
/* schedule immediate reset if we believe we hung */
|