Eric Dumazet f26845b43c tcp: fix splice() and tcp collapsing interaction
Under unusual circumstances, TCP collapse can split a big GRO TCP packet
while its being used in a splice(socket->pipe) operation.

skb_splice_bits() releases the socket lock before calling
splice_to_pipe().

[ 1081.353685] WARNING: at net/ipv4/tcp.c:1330 tcp_cleanup_rbuf+0x4d/0xfc()
[ 1081.371956] Hardware name: System x3690 X5 -[7148Z68]-
[ 1081.391820] cleanup rbuf bug: copied AD3BCF1 seq AD370AF rcvnxt AD3CF13

To fix this problem, we must eat skbs in tcp_recv_skb().

Remove the inline keyword from tcp_recv_skb() definition since
it has three call sites.

Reported-by: Christian Becker <c.becker@traviangames.com>
Cc: Willy Tarreau <w@1wt.eu>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Tested-by: Willy Tarreau <w@1wt.eu>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-01-10 14:09:57 -08:00
..
2012-12-24 18:42:58 -08:00
2012-10-01 18:39:44 -04:00
2011-10-19 03:10:46 -04:00
2012-10-08 17:42:36 -04:00
2012-07-30 14:53:21 -07:00
2012-11-18 20:32:45 -05:00
2012-07-31 18:42:43 -07:00
2012-01-20 14:17:26 -05:00
2012-01-20 14:17:26 -05:00
2012-05-17 14:59:59 -04:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2012-03-11 23:42:51 -07:00
2012-04-15 12:37:19 -04:00