linux-uconsole/drivers/net
Govindarajulu Varadarajan 6cbec5d61a enic: fix rx skb checksum
[ Upstream commit 17e96834fd ]

Hardware always provides compliment of IP pseudo checksum. Stack expects
whole packet checksum without pseudo checksum if CHECKSUM_COMPLETE is set.

This causes checksum error in nf & ovs.

kernel: qg-19546f09-f2: hw csum failure
kernel: CPU: 9 PID: 0 Comm: swapper/9 Tainted: GF          O--------------   3.10.0-123.8.1.el7.x86_64 #1
kernel: Hardware name: Cisco Systems Inc UCSB-B200-M3/UCSB-B200-M3, BIOS B200M3.2.2.3.0.080820141339 08/08/2014
kernel: ffff881218f40000 df68243feb35e3a8 ffff881237a43ab8 ffffffff815e237b
kernel: ffff881237a43ad0 ffffffff814cd4ca ffff8829ec71eb00 ffff881237a43af0
kernel: ffffffff814c6232 0000000000000286 ffff8829ec71eb00 ffff881237a43b00
kernel: Call Trace:
kernel: <IRQ>  [<ffffffff815e237b>] dump_stack+0x19/0x1b
kernel: [<ffffffff814cd4ca>] netdev_rx_csum_fault+0x3a/0x40
kernel: [<ffffffff814c6232>] __skb_checksum_complete_head+0x62/0x70
kernel: [<ffffffff814c6251>] __skb_checksum_complete+0x11/0x20
kernel: [<ffffffff8155a20c>] nf_ip_checksum+0xcc/0x100
kernel: [<ffffffffa049edc7>] icmp_error+0x1f7/0x35c [nf_conntrack_ipv4]
kernel: [<ffffffff814cf419>] ? netif_rx+0xb9/0x1d0
kernel: [<ffffffffa040eb7b>] ? internal_dev_recv+0xdb/0x130 [openvswitch]
kernel: [<ffffffffa04c8330>] nf_conntrack_in+0xf0/0xa80 [nf_conntrack]
kernel: [<ffffffff81509380>] ? inet_del_offload+0x40/0x40
kernel: [<ffffffffa049e302>] ipv4_conntrack_in+0x22/0x30 [nf_conntrack_ipv4]
kernel: [<ffffffff815005ca>] nf_iterate+0xaa/0xc0
kernel: [<ffffffff81509380>] ? inet_del_offload+0x40/0x40
kernel: [<ffffffff81500664>] nf_hook_slow+0x84/0x140
kernel: [<ffffffff81509380>] ? inet_del_offload+0x40/0x40
kernel: [<ffffffff81509dd4>] ip_rcv+0x344/0x380

Hardware verifies IP & tcp/udp header checksum but does not provide payload
checksum, use CHECKSUM_UNNECESSARY. Set it only if its valid IP tcp/udp packet.

Cc: Jiri Benc <jbenc@redhat.com>
Cc: Stefan Assmann <sassmann@redhat.com>
Reported-by: Sunil Choudhary <schoudha@redhat.com>
Signed-off-by: Govindarajulu Varadarajan <_govind@gmx.com>
Reviewed-by: Jiri Benc <jbenc@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-01-27 07:52:31 -08:00
..
appletalk
arcnet arcnet: cleanup sizeof parameter 2013-08-11 18:35:25 -07:00
bonding bonding: Remove debug_fs files when module init fails 2014-05-30 21:52:14 -07:00
caif caif: CAIF_VIRTIO should depend on HAS_DMA 2013-05-11 16:28:24 -07:00
can can: peak_usb: fix memset() usage 2015-01-16 06:59:00 -08:00
cris
dsa
ethernet enic: fix rx skb checksum 2015-01-27 07:52:31 -08:00
fddi
hamradio hamradio/yam: fix info leak in ioctl 2014-01-15 15:28:48 -08:00
hippi
hyperv hyperv: Fix a bug in netvsc_start_xmit() 2014-10-15 08:31:57 +02:00
ieee802154 ieee802154: fix error handling in ieee802154fake_probe() 2014-12-06 15:05:46 -08:00
irda net/irda: fix error return code in bfin_sir_open() 2013-05-08 13:13:29 -07:00
phy net: phy: fix a bug when verify the EEE support 2013-05-27 23:30:09 -07:00
plip
ppp pptp: fix stack info leak in pptp_getname() 2014-12-06 15:05:47 -08:00
slip
team team: fix mtu setting 2014-06-26 15:12:38 -04:00
usb qmi_wwan: Add support for HP lt4112 LTE/HSPA+ Gobi 4G Modem 2014-12-06 15:05:47 -08:00
vmxnet3 vmxnet3: fix building without CONFIG_PCI_MSI 2014-03-23 21:38:18 -07:00
wan wanxl: fix info leak in ioctl 2013-11-04 04:31:04 -08:00
wimax
wireless ath5k: fix hardware queue index assignment 2015-01-16 06:59:00 -08:00
xen-netback xen-netback: remove pointless clause from if statement 2014-04-14 06:42:18 -07:00
dummy.c dummy: fix oops when loading the dummy failed 2013-07-28 16:30:01 -07:00
eql.c
ifb.c ifb: fix oops when loading the ifb failed 2013-07-28 16:30:01 -07:00
Kconfig drivers/net: macvtap and tun depend on INET 2014-11-14 08:47:53 -08:00
LICENSE.SRC
loopback.c
macvlan.c macvlan: Initialize vlan_features to turn on offload support. 2014-08-14 09:24:15 +08:00
macvtap.c macvtap: Fix csum_start when VLAN tags are present 2014-11-21 09:22:53 -08:00
Makefile
mdio.c
mii.c
netconsole.c
ntb_netdev.c ntb_netdev: remove from list on exit 2013-05-15 10:58:14 -07:00
rionet.c
sb1000.c
Space.c
sungem_phy.c
tun.c tun: update file current position 2014-01-15 15:28:46 -08:00
veth.c net: vlan: announce STAG offload capability in some drivers 2013-04-19 14:46:06 -04:00
virtio_net.c virtio-net: alloc big buffers also when guest can receive UFO 2014-03-23 21:38:10 -07:00
vxlan.c inetpeer: get rid of ip_id_count 2014-08-14 09:24:15 +08:00
xen-netfront.c xen-netfront: Remove BUGs on paged skb data which crosses a page boundary 2014-12-16 09:09:42 -08:00