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>
This commit is contained in:
Родитель
b75ec3af27
Коммит
d749c9cbff
|
@ -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;
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче