Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b1afde60 authored by Nandita Dukkipati's avatar Nandita Dukkipati Committed by David S. Miller
Browse files

tcp: Bug fix in initialization of receive window.



The bug has to do with boundary checks on the initial receive window.
If the initial receive window falls between init_cwnd and the
receive window specified by the user, the initial window is incorrectly
brought down to init_cwnd. The correct behavior is to allow it to
remain unchanged.

Signed-off-by: default avatarNandita Dukkipati <nanditad@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ce9aeb58
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -231,11 +231,10 @@ void tcp_select_initial_window(int __space, __u32 mss,
		/* when initializing use the value from init_rcv_wnd
		 * rather than the default from above
		 */
		if (init_rcv_wnd &&
		    (*rcv_wnd > init_rcv_wnd * mss))
			*rcv_wnd = init_rcv_wnd * mss;
		else if (*rcv_wnd > init_cwnd * mss)
			*rcv_wnd = init_cwnd * mss;
		if (init_rcv_wnd)
			*rcv_wnd = min(*rcv_wnd, init_rcv_wnd * mss);
		else
			*rcv_wnd = min(*rcv_wnd, init_cwnd * mss);
	}

	/* Set the clamp no higher than max representable value */