]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c
net:ethernet:aquantia: Workaround for HW checksum bug.
[karo-tx-linux.git] / drivers / net / ethernet / aquantia / atlantic / hw_atl / hw_atl_a0.c
index faeb4935ef3e3af5c998ef701e1e7cd2f5d739c8..c5a02df7a48b719a65b169938746d777f3f0b5a0 100644 (file)
@@ -629,6 +629,12 @@ static int hw_atl_a0_hw_ring_rx_receive(struct aq_hw_s *self,
                                buff->is_udp_cso = (is_err & 0x10U) ? 0 : 1;
                        else if (0x0U == (pkt_type & 0x1CU))
                                buff->is_tcp_cso = (is_err & 0x10U) ? 0 : 1;
+
+                       /* Checksum offload workaround for small packets */
+                       if (rxd_wb->pkt_len <= 60) {
+                               buff->is_ip_cso = 0U;
+                               buff->is_cso_err = 0U;
+                       }
                }
 
                is_err &= ~0x18U;