android_kernel_google_msm/net/ipv4
Eric Dumazet aedce03d5d tcp: gso: fix truesize tracking
[ Upstream commit 0d08c42cf9 ]

commit 6ff50cd555 ("tcp: gso: do not generate out of order packets")
had an heuristic that can trigger a warning in skb_try_coalesce(),
because skb->truesize of the gso segments were exactly set to mss.

This breaks the requirement that

skb->truesize >= skb->len + truesizeof(struct sk_buff);

It can trivially be reproduced by :

ifconfig lo mtu 1500
ethtool -K lo tso off
netperf

As the skbs are looped into the TCP networking stack, skb_try_coalesce()
warns us of these skb under-estimating their truesize.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: Alexei Starovoitov <ast@plumgrid.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Change-Id: Iced7cd04a2860fcc14815c4f5564e01840ac41e3
2020-11-30 19:35:22 +03:00
..
netfilter netfilter: xt_rpfilter: depend on raw or mangle table 2018-12-07 22:04:24 +04:00
af_inet.c net: Replace u64_stats_fetch_begin_bh to u64_stats_fetch_begin_irq 2020-11-30 19:26:49 +03:00
ah4.c
arp.c net: Allow userns root to control ipv4 2018-12-07 22:04:24 +04:00
cipso_ipv4.c
datagram.c ipv4: fix possible seqlock deadlock 2013-12-08 07:29:41 -08:00
devinet.c net: Allow userns root to control ipv4 2018-12-07 22:04:24 +04:00
esp4.c
fib_frontend.c net: Allow userns root to control ipv4 2018-12-07 22:04:24 +04:00
fib_lookup.h
fib_rules.c
fib_semantics.c ipv4, fib: pass LOOPBACK_IFINDEX instead of 0 to flowi4_iif 2018-08-27 14:52:49 +00:00
fib_trie.c fib_trie: remove potential out of bound access 2013-09-14 06:02:09 -07:00
gre.c
icmp.c net: add a sysctl to reflect the fwmark on replies 2014-05-12 22:39:57 -07:00
igmp.c inetpeer: get rid of ip_id_count 2014-08-14 08:42:35 +08:00
inet_connection_sock.c Merge remote-tracking branch 'stable/linux-3.4.y' into lineage-15.1 2017-12-27 17:13:15 +03:00
inet_diag.c Merge remote-tracking branch 'stable/linux-3.4.y' into lineage-15.1 2017-12-27 17:13:15 +03:00
inet_fragment.c
inet_hashtables.c net: do not call sock_put() on TIMEWAIT sockets 2013-11-04 04:23:40 -08:00
inet_lro.c
inet_timewait_sock.c
inetpeer.c inetpeer: get rid of ip_id_count 2014-08-14 08:42:35 +08:00
ip_forward.c ipv4: try to cache dst_entries which would cause a redirect 2016-10-29 23:12:10 +08:00
ip_fragment.c ipv4: fix path MTU discovery with connection tracking 2018-12-07 22:02:09 +04:00
ip_gre.c net: Replace u64_stats_fetch_begin_bh to u64_stats_fetch_begin_irq 2020-11-30 19:26:49 +03:00
ip_input.c ipv4: add option to drop unicast encapsulated in L2 multicast 2018-12-07 21:59:38 +04:00
ip_options.c net: Allow userns root to control ipv4 2018-12-07 22:04:24 +04:00
ip_output.c netfilter: use IS_ENABLE to replace if defined in TRACE target 2018-12-07 22:04:24 +04:00
ip_sockglue.c net: Allow userns root to control ipv4 2018-12-07 22:04:24 +04:00
ipcomp.c
ipconfig.c
ipip.c net: Replace u64_stats_fetch_begin_bh to u64_stats_fetch_begin_irq 2020-11-30 19:26:49 +03:00
ipmr.c net: Allow userns root to control ipv4 2018-12-07 22:04:24 +04:00
Kconfig net: diag: Support destroying TCP sockets. 2017-12-15 22:54:58 +03:00
Makefile
netfilter.c netfilter: add protocol independent NAT core 2018-12-07 22:02:09 +04:00
ping.c Merge remote-tracking branch 'stable/linux-3.4.y' into lineage-15.1 2017-12-27 17:13:15 +03:00
proc.c
protocol.c
raw.c Revert "net: core: Support UID-based routing." 2017-08-27 19:09:20 +03:00
route.c ipv4: Pass struct flowi4 directly to rt_fill_info 2020-10-25 02:37:54 -04:00
syncookies.c Merge remote-tracking branch 'stable/linux-3.4.y' into lineage-15.1 2017-12-27 17:13:15 +03:00
sysctl_net_ipv4.c tcp: TCP Small Queues 2020-11-30 19:35:00 +03:00
sysfs_net_ipv4.c
tcp.c tcp: gso: fix truesize tracking 2020-11-30 19:35:22 +03:00
tcp_bic.c
tcp_cong.c tcp: remove Appropriate Byte Count support 2020-11-30 19:26:36 +03:00
tcp_cubic.c Merge remote-tracking branch 'stable/linux-3.4.y' into lineage-15.1 2017-12-27 17:13:15 +03:00
tcp_diag.c net: diag: Support destroying TCP sockets. 2017-12-15 22:54:58 +03:00
tcp_highspeed.c
tcp_htcp.c
tcp_hybla.c
tcp_illinois.c
tcp_input.c tcp: fix a potential deadlock in tcp_get_info() 2020-11-30 19:31:51 +03:00
tcp_ipv4.c tcp: TCP Small Queues 2020-11-30 19:35:00 +03:00
tcp_lp.c
tcp_memcontrol.c
tcp_minisocks.c tcp: TCP Small Queues 2020-11-30 19:35:00 +03:00
tcp_output.c tcp: tsq: restore minimal amount of queueing 2020-11-30 19:35:19 +03:00
tcp_probe.c
tcp_scalable.c
tcp_timer.c WLAN subsystem: Sysctl support for key TCP/IP parameters 2016-10-29 23:12:27 +08:00
tcp_vegas.c tcp: Fix integer-overflow in TCP vegas 2014-08-14 08:42:36 +08:00
tcp_vegas.h
tcp_veno.c tcp: Fix integer-overflows in TCP veno 2014-08-14 08:42:36 +08:00
tcp_westwood.c
tcp_yeah.c
tunnel4.c
udp.c Merge remote-tracking branch 'stable/linux-3.4.y' into lineage-15.1 2017-12-27 17:13:15 +03:00
udp_diag.c
udp_impl.h
udplite.c
xfrm4_input.c
xfrm4_mode_beet.c
xfrm4_mode_transport.c
xfrm4_mode_tunnel.c inetpeer: get rid of ip_id_count 2014-08-14 08:42:35 +08:00
xfrm4_output.c
xfrm4_policy.c Revert "net: core: Support UID-based routing." 2017-08-27 19:09:20 +03:00
xfrm4_state.c
xfrm4_tunnel.c