linux/drivers/net
Eric Dumazet 12b03558ce net: sungem: fix rx checksum support
After commit 88078d98d1 ("net: pskb_trim_rcsum() and CHECKSUM_COMPLETE
are friends"), sungem owners reported the infamous "eth0: hw csum failure"
message.

CHECKSUM_COMPLETE has in fact never worked for this driver, but this
was masked by the fact that upper stacks had to strip the FCS, and
therefore skb->ip_summed was set back to CHECKSUM_NONE before
my recent change.

Driver configures a number of bytes to skip when the chip computes
the checksum, and for some reason only half of the Ethernet header
was skipped.

Then a second problem is that we should strip the FCS by default,
unless the driver is updated to eventually support NETIF_F_RXFCS in
the future.

Finally, a driver should check if NETIF_F_RXCSUM feature is enabled
or not, so that the admin can turn off rx checksum if wanted.

Many thanks to Andreas Schwab and Mathieu Malaterre for their
help in debugging this issue.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: Meelis Roos <mroos@linux.ee>
Reported-by: Mathieu Malaterre <malat@debian.org>
Reported-by: Andreas Schwab <schwab@linux-m68k.org>
Tested-by: Andreas Schwab <schwab@linux-m68k.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-06-20 14:30:06 +09:00
..
appletalk
arcnet
bonding treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
caif
can treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
dsa treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
ethernet net: sungem: fix rx checksum support 2018-06-20 14:30:06 +09:00
fddi net: fddi: fix a possible null-ptr-deref 2018-06-08 18:47:46 -04:00
fjes
hamradio net: hamradio: use eth_broadcast_addr 2018-06-20 07:51:43 +09:00
hippi treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
hyperv hv_netvsc: Fix the variable sizes in ipsecv2 and rsc offload 2018-06-14 20:15:44 -07:00
ieee802154
ipvlan ipvlan: use ETH_MAX_MTU as max mtu 2018-06-20 07:53:46 +09:00
netdevsim netdevsim: Add extack error message for devlink reload 2018-06-05 12:32:37 -04:00
phy Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-06-16 07:39:34 +09:00
plip
ppp treewide: Use array_size() in vzalloc() 2018-06-12 16:19:22 -07:00
slip treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
team treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
usb net/usb/drivers: Remove useless hrtimer_active check 2018-06-20 09:05:44 +09:00
vmxnet3 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-05-21 16:01:54 -04:00
wan treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
wimax
wireless Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-06-16 07:39:34 +09:00
xen-netback treewide: Use array_size() in vzalloc() 2018-06-12 16:19:22 -07:00
dummy.c
eql.c
geneve.c
gtp.c treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
ifb.c ifb: fix packets checksum 2018-05-28 23:02:22 -04:00
Kconfig virtio_net: Extend virtio to use VF datapath when available 2018-05-28 22:59:54 -04:00
LICENSE.SRC
loopback.c
macsec.c
macvlan.c
macvtap.c
Makefile net: Introduce net_failover driver 2018-05-28 22:59:54 -04:00
mdio.c
mii.c
net_failover.c net: net_failover: fix typo in net_failover_slave_register() 2018-06-20 07:56:44 +09:00
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c net: in virtio_net_hdr only add VLAN_HLEN to csum_start if payload holds vlan 2018-06-07 16:15:38 -04:00
thunderbolt.c
tun.c net: in virtio_net_hdr only add VLAN_HLEN to csum_start if payload holds vlan 2018-06-07 16:15:38 -04:00
veth.c
virtio_net.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
vrf.c vrf: add CRC32c offload to device features 2018-05-28 22:55:13 -04:00
vsockmon.c
vxlan.c
xen-netfront.c xen/netfront: raise max number of slots in xennet_get_responses() 2018-06-12 15:42:38 -07:00