diff options
Diffstat (limited to 'net/ipv4/tcp.c')
-rw-r--r-- | net/ipv4/tcp.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index f1377f2a0472..bb2ce74f6004 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c | |||
@@ -2545,10 +2545,13 @@ static int do_tcp_setsockopt(struct sock *sk, int level, | |||
2545 | 2545 | ||
2546 | case TCP_FASTOPEN: | 2546 | case TCP_FASTOPEN: |
2547 | if (val >= 0 && ((1 << sk->sk_state) & (TCPF_CLOSE | | 2547 | if (val >= 0 && ((1 << sk->sk_state) & (TCPF_CLOSE | |
2548 | TCPF_LISTEN))) | 2548 | TCPF_LISTEN))) { |
2549 | tcp_fastopen_init_key_once(true); | ||
2550 | |||
2549 | err = fastopen_init_queue(sk, val); | 2551 | err = fastopen_init_queue(sk, val); |
2550 | else | 2552 | } else { |
2551 | err = -EINVAL; | 2553 | err = -EINVAL; |
2554 | } | ||
2552 | break; | 2555 | break; |
2553 | case TCP_TIMESTAMP: | 2556 | case TCP_TIMESTAMP: |
2554 | if (!tp->repair) | 2557 | if (!tp->repair) |