When working on upgrading the v3.x kernels of our embedded devices to more recent 4.x kernels we noticed some of our proprietary networking stuff is broken. Further investigations brought up an issue with small UDP packets (data payload <= 2), which contained wrong UDP header checksums. We tracked this down to commit 85ff3d87bf2ef1fadcde8553628c60f79806fdb4 net/macb: add TX checksum offload feature.
It turns out that (at least) Zynq's GEM needs the checksum field set to 0 to correctly calculate the checksum. Changes since v1: - dropped disabling HW checksum offload for Zynq - initialize checksum similar to net/ethernet/freescale/fec_main.c Helmut Buchsbaum (1): net: macb: initialize checksum when using checksum offloading drivers/net/ethernet/cadence/macb.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) -- 2.1.4