From: Tom Herbert Date: Sun, 15 Jun 2014 06:24:03 +0000 (-0700) Subject: net: Fix save software checksum complete X-Git-Tag: omap-for-v3.16/fixes-against-rc1~10^2~1^2~3 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=46fb51eb96cafb2c148b7b5119adb5e31a2bf3c4;p=pandora-kernel.git net: Fix save software checksum complete Geert reported issues regarding checksum complete and UDP. The logic introduced in commit 7e3cead5172927732f51fde ("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 Signed-off-by: Tom Herbert Signed-off-by: David S. Miller --- Reading git-diff-tree failed