linux/net/core
Tom Herbert 46fb51eb96 net: Fix save software checksum complete
Geert reported issues regarding checksum complete and UDP.
The logic introduced in commit 7e3cead517
("net: Save software checksum complete") is not correct.

This patch:
1) Restores code in __skb_checksum_complete_header except for setting
   CHECKSUM_UNNECESSARY. This function may be calculating checksum on
   something less than skb->len.
2) Adds saving checksum to __skb_checksum_complete. The full packet
   checksum 0..skb->len is calculated without adding in pseudo header.
   This value is saved in skb->csum and then the pseudo header is added
   to that to derive the checksum for validation.
3) In both __skb_checksum_complete_header and __skb_checksum_complete,
   set skb->csum_valid to whether checksum of zero was computed. This
   allows skb_csum_unnecessary to return true without changing to
   CHECKSUM_UNNECESSARY which was done previously.
4) Copy new csum related bits in __copy_skb_header.

Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Tom Herbert <therbert@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-06-15 01:00:49 -07:00
..
Makefile
datagram.c net: Fix save software checksum complete 2014-06-15 01:00:49 -07:00
dev.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2014-06-12 14:27:40 -07:00
dev_addr_lists.c
dev_ioctl.c
drop_monitor.c
dst.c
ethtool.c
fib_rules.c
filter.c net: filter: fix warning on 32-bit arch 2014-06-11 15:12:27 -07:00
flow.c
flow_dissector.c
gen_estimator.c
gen_stats.c
iovec.c
link_watch.c
neighbour.c
net-procfs.c
net-sysfs.c
net-sysfs.h
net-traces.c
net_namespace.c
netclassid_cgroup.c
netevent.c
netpoll.c
netprio_cgroup.c
pktgen.c
ptp_classifier.c
request_sock.c
rtnetlink.c rtnetlink: fix userspace API breakage for iproute2 < v3.9.0 2014-06-12 11:07:42 -07:00
scm.c
secure_seq.c
skbuff.c net: Fix save software checksum complete 2014-06-15 01:00:49 -07:00
sock.c
sock_diag.c
stream.c
sysctl_net_core.c
timestamping.c
tso.c
user_dma.c
utils.c