From: Hannes Frederic Sowa Date: Tue, 27 Oct 2015 21:40:39 +0000 (+0100) Subject: ipv4: no CHECKSUM_PARTIAL on MSG_MORE corked sockets X-Git-Tag: v4.14-rc1~4436^2~36^2~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d749c9cbffd666956694f307d237e018c464d973;p=platform%2Fkernel%2Flinux-rpi.git ipv4: no CHECKSUM_PARTIAL on MSG_MORE corked sockets We cannot reliable calculate packet size on MSG_MORE corked sockets and thus cannot decide if they are going to be fragmented later on, so better not use CHECKSUM_PARTIAL in the first place. Cc: Eric Dumazet Cc: Vlad Yasevich Cc: Benjamin Coddington Cc: Tom Herbert Signed-off-by: Hannes Frederic Sowa Signed-off-by: David S. Miller --- diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index 50e2973..0b02417 100644 --- a/net/ipv4/ip_output.c +++ b/net/ipv4/ip_output.c @@ -911,6 +911,7 @@ static int __ip_append_data(struct sock *sk, if (transhdrlen && length + fragheaderlen <= mtu && rt->dst.dev->features & NETIF_F_V4_CSUM && + !(flags & MSG_MORE) && !exthdrlen) csummode = CHECKSUM_PARTIAL;