From: Jan Glaza For E830 adapters the hardware-reported EIPE (Ethernet Inline IPsec Engine) error is a reliable indication that a received packet failed decryption and has a bad checksum. Route EIPE errors through the generic checksum error path on E830 so the error is visible via standard ethtool statistics (rx_csum_bad). On previous devices (E810, E82X) the EIPE flag can be spuriously set on encapsulated packets with inner L2 padding, so those adapters only increment the driver-private hw_rx_eipe_error counter without routing through the checksum error path. Fixes: 0ca6755f3cc2 ("ice: Add a new counter for Rx EIPE errors") Signed-off-by: Jan Glaza Signed-off-by: Aleksandr Loktionov --- drivers/net/ethernet/intel/ice/ice_txrx_lib.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/ethernet/intel/ice/ice_txrx_lib.c b/drivers/net/ethernet/intel/ice/ice_txrx_lib.c index e695a66..82d9d2c4 100644 --- a/drivers/net/ethernet/intel/ice/ice_txrx_lib.c +++ b/drivers/net/ethernet/intel/ice/ice_txrx_lib.c @@ -140,6 +140,8 @@ ice_rx_csum(struct ice_rx_ring *ring, struct sk_buff *skb, if (ipv4 && (rx_status0 & (BIT(ICE_RX_FLEX_DESC_STATUS0_XSUM_EIPE_S)))) { ring->vsi->back->hw_rx_eipe_error++; + if (ring->vsi->back->hw.mac_type == ICE_MAC_E830) + goto checksum_fail; return; } -- 2.52.0