diff options
author | Hannes Frederic Sowa <hannes@stressinduktion.org> | 2015-10-27 22:40:39 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-11-01 12:01:27 -0500 |
commit | d749c9cbffd666956694f307d237e018c464d973 (patch) | |
tree | 0aa118b137d47996cc230333271d247dc0ad74bc | |
parent | b75ec3af27bf011a760e2f44eb25a99b6fbb0fb3 (diff) | |
download | linux-d749c9cbffd666956694f307d237e018c464d973.tar.gz linux-d749c9cbffd666956694f307d237e018c464d973.tar.bz2 linux-d749c9cbffd666956694f307d237e018c464d973.zip |
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 <edumazet@google.com>
Cc: Vlad Yasevich <vyasevich@gmail.com>
Cc: Benjamin Coddington <bcodding@redhat.com>
Cc: Tom Herbert <tom@herbertland.com>
Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/ipv4/ip_output.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index 50e29737b584..0b024178edd3 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; |