mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-04-14 09:57:39 +02:00
tcp: Fix a data-race around sysctl_tcp_ecn_fallback.
[ Upstream commit12b8d9ca7e] While reading sysctl_tcp_ecn_fallback, it can be changed concurrently. Thus, we need to add READ_ONCE() to its reader. Fixes:492135557d("tcp: add rfc3168, section 6.1.1.1. fallback") Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
46e9c46203
commit
8bcf7339f2
@@ -696,6 +696,8 @@ static struct ctl_table ipv4_net_table[] = {
|
||||
.maxlen = sizeof(u8),
|
||||
.mode = 0644,
|
||||
.proc_handler = proc_dou8vec_minmax,
|
||||
.extra1 = SYSCTL_ZERO,
|
||||
.extra2 = SYSCTL_ONE,
|
||||
},
|
||||
{
|
||||
.procname = "ip_dynaddr",
|
||||
|
||||
@@ -346,7 +346,7 @@ static void tcp_ecn_send_syn(struct sock *sk, struct sk_buff *skb)
|
||||
|
||||
static void tcp_ecn_clear_syn(struct sock *sk, struct sk_buff *skb)
|
||||
{
|
||||
if (sock_net(sk)->ipv4.sysctl_tcp_ecn_fallback)
|
||||
if (READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_ecn_fallback))
|
||||
/* tp->ecn_flags are cleared at a later point in time when
|
||||
* SYN ACK is ultimatively being received.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user