Re: [PATCH net v2 1/4] ipv4: no CHECKSUM_PARTIAL on MSG_MORE corked sockets
From: Tom Herbert <hidden>
Date: 2015-10-27 16:05:00
On Tue, Oct 27, 2015 at 8:02 AM, Hannes Frederic Sowa [off-list ref] wrote:
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.
MSG_MORE should be independent of checksum offload. If packet is fragmented the fix in ip_output will ensure that skb_checksum_help is properly called.
quoted hunk ↗ jump to hunk
Cc: Eric Dumazet <edumazet@google.com> Cc: Vlad Yasevich <redacted> Cc: Benjamin Coddington <redacted> Cc: Tom Herbert <redacted> Signed-off-by: Hannes Frederic Sowa <redacted> --- net/ipv4/ip_output.c | 1 + 1 file changed, 1 insertion(+)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; --2.5.0