tcp: consider recv buf for the initial window scale
[firefly-linux-kernel-4.4.55.git] / net / ipv4 / tcp_output.c
index 7c9883ab56e5435dbc05d5e4499eb83cee9c91d9..660c967ba84a0f8a4e01d3c84fbd11578f0265d8 100644 (file)
@@ -239,7 +239,8 @@ void tcp_select_initial_window(int __space, __u32 mss,
                /* Set window scaling on max possible window
                 * See RFC1323 for an explanation of the limit to 14
                 */
-               space = max_t(u32, sysctl_tcp_rmem[2], sysctl_rmem_max);
+               space = max_t(u32, space, sysctl_tcp_rmem[2]);
+               space = max_t(u32, space, sysctl_rmem_max);
                space = min_t(u32, space, *window_clamp);
                while (space > 65535 && (*rcv_wscale) < 14) {
                        space >>= 1;