net-tcp: fastopen: fix high order allocations
authorEric Dumazet <edumazet@google.com>
Thu, 20 Feb 2014 18:09:18 +0000 (10:09 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 24 Mar 2014 04:38:10 +0000 (21:38 -0700)
commitfe42b170afae5978dc90641f29f2b39aefaa47fa
tree0bd4695bd5eab65f1815de7adf435c323791c081
parentdabdb40f7f934e78b9c0ea45d114d1494e4cd44a
net-tcp: fastopen: fix high order allocations

[ Upstream commit f5ddcbbb40aa0ba7fbfe22355d287603dbeeaaac ]

This patch fixes two bugs in fastopen :

1) The tcp_sendmsg(...,  @size) argument was ignored.

   Code was relying on user not fooling the kernel with iovec mismatches

2) When MTU is about 64KB, tcp_send_syn_data() attempts order-5
allocations, which are likely to fail when memory gets fragmented.

Fixes: 783237e8daf13 ("net-tcp: Fast Open client - sending SYN-data")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Yuchung Cheng <ycheng@google.com>
Acked-by: Yuchung Cheng <ycheng@google.com>
Tested-by: Yuchung Cheng <ycheng@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
include/net/tcp.h
net/ipv4/tcp.c
net/ipv4/tcp_output.c