aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel/i40evf/i40e_txrx.c
diff options
context:
space:
mode:
authorJesse Brandeburg <jesse.brandeburg@intel.com>2014-07-09 03:46:13 -0400
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2014-07-24 06:47:28 -0400
commit22d2fa1d31b74c0f18f09b11331336ca53dbb1ec (patch)
tree126f256368443f48d9c5b41e1f15547174d0461a /drivers/net/ethernet/intel/i40evf/i40e_txrx.c
parentcd552cb49e9ad5fd8748fb6b38a8bd38e9e4d86c (diff)
i40e/i40evf: fix extension header csum logic
The hardware design requires that the driver avoid indicating checksum offload success on some ipv6 frames with extension headers. The code needs to just check for the IPV6EXADD bit and if it is set punt the checksum to the stack. I don't know why the code was checking TCP on inner protocol, as that code doesn't make any sense to me but seems wrong, so remove it. Change-ID: I10d3aacdbb1819fb60b4b0eb80e6cc67ef2c9599 Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Tested-By: Jim Young <jamesx.m.young@intel.com> Tested-by: Sibai Li <sibai.li@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel/i40evf/i40e_txrx.c')
-rw-r--r--drivers/net/ethernet/intel/i40evf/i40e_txrx.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/drivers/net/ethernet/intel/i40evf/i40e_txrx.c b/drivers/net/ethernet/intel/i40evf/i40e_txrx.c
index b342f212e91f..79bf96ca6489 100644
--- a/drivers/net/ethernet/intel/i40evf/i40e_txrx.c
+++ b/drivers/net/ethernet/intel/i40evf/i40e_txrx.c
@@ -773,8 +773,6 @@ static inline void i40e_rx_checksum(struct i40e_vsi *vsi,
773 773
774 /* likely incorrect csum if alternate IP extension headers found */ 774 /* likely incorrect csum if alternate IP extension headers found */
775 if (ipv6 && 775 if (ipv6 &&
776 decoded.inner_prot == I40E_RX_PTYPE_INNER_PROT_TCP &&
777 rx_error & (1 << I40E_RX_DESC_ERROR_L4E_SHIFT) &&
778 rx_status & (1 << I40E_RX_DESC_STATUS_IPV6EXADD_SHIFT)) 776 rx_status & (1 << I40E_RX_DESC_STATUS_IPV6EXADD_SHIFT))
779 /* don't increment checksum err here, non-fatal err */ 777 /* don't increment checksum err here, non-fatal err */
780 return; 778 return;