]>
Commit | Line | Data |
---|---|---|
4b2b8a1c GKH |
1 | From 02db55718d53f9d426cee504c27fb768e9ed4ffe Mon Sep 17 00:00:00 2001 |
2 | From: Eric Dumazet <edumazet@google.com> | |
3 | Date: Sun, 10 Dec 2017 17:55:02 -0800 | |
4 | Subject: tcp: do not overshoot window_clamp in tcp_rcv_space_adjust() | |
5 | ||
6 | From: Eric Dumazet <edumazet@google.com> | |
7 | ||
8 | commit 02db55718d53f9d426cee504c27fb768e9ed4ffe upstream. | |
9 | ||
10 | While rcvbuf is properly clamped by tcp_rmem[2], rcvwin | |
11 | is left to a potentially too big value. | |
12 | ||
13 | It has no serious effect, since : | |
14 | 1) tcp_grow_window() has very strict checks. | |
15 | 2) window_clamp can be mangled by user space to any value anyway. | |
16 | ||
17 | tcp_init_buffer_space() and companions use tcp_full_space(), | |
18 | we use tcp_win_from_space() to avoid reloading sk->sk_rcvbuf | |
19 | ||
20 | Signed-off-by: Eric Dumazet <edumazet@google.com> | |
21 | Acked-by: Soheil Hassas Yeganeh <soheil@google.com> | |
22 | Acked-by: Wei Wang <weiwan@google.com> | |
23 | Acked-by: Neal Cardwell <ncardwell@google.com> | |
24 | Signed-off-by: David S. Miller <davem@davemloft.net> | |
25 | Cc: Benjamin Gilbert <benjamin.gilbert@coreos.com> | |
26 | Signed-off-by: Guenter Roeck <linux@roeck-us.net> | |
27 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | |
28 | ||
29 | --- | |
30 | net/ipv4/tcp_input.c | 2 +- | |
31 | 1 file changed, 1 insertion(+), 1 deletion(-) | |
32 | ||
33 | --- a/net/ipv4/tcp_input.c | |
34 | +++ b/net/ipv4/tcp_input.c | |
35 | @@ -605,7 +605,7 @@ void tcp_rcv_space_adjust(struct sock *s | |
36 | sk->sk_rcvbuf = rcvbuf; | |
37 | ||
38 | /* Make the window clamp follow along. */ | |
39 | - tp->window_clamp = rcvwin; | |
40 | + tp->window_clamp = tcp_win_from_space(rcvbuf); | |
41 | } | |
42 | } | |
43 | tp->rcvq_space.space = copied; |