1 |
From 9181e44fd86a23e957c81a25ba3c923fdcb0aac8 Mon Sep 17 00:00:00 2001 |
2 |
From: Sasha Levin <sashal@kernel.org> |
3 |
Date: Tue, 23 Aug 2022 10:46:52 -0700 |
4 |
Subject: net: Fix a data-race around sysctl_net_busy_read. |
5 |
|
6 |
From: Kuniyuki Iwashima <kuniyu@amazon.com> |
7 |
|
8 |
[ Upstream commit e59ef36f0795696ab229569c153936bfd068d21c ] |
9 |
|
10 |
While reading sysctl_net_busy_read, it can be changed concurrently. |
11 |
Thus, we need to add READ_ONCE() to its reader. |
12 |
|
13 |
Fixes: 2d48d67fa8cd ("net: poll/select low latency socket support") |
14 |
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com> |
15 |
Signed-off-by: David S. Miller <davem@davemloft.net> |
16 |
Signed-off-by: Sasha Levin <sashal@kernel.org> |
17 |
--- |
18 |
net/core/sock.c | 2 +- |
19 |
1 file changed, 1 insertion(+), 1 deletion(-) |
20 |
|
21 |
diff --git a/net/core/sock.c b/net/core/sock.c |
22 |
index d672e63a5c2d4..16ab5ef749c60 100644 |
23 |
--- a/net/core/sock.c |
24 |
+++ b/net/core/sock.c |
25 |
@@ -3365,7 +3365,7 @@ void sock_init_data(struct socket *sock, struct sock *sk) |
26 |
|
27 |
#ifdef CONFIG_NET_RX_BUSY_POLL |
28 |
sk->sk_napi_id = 0; |
29 |
- sk->sk_ll_usec = sysctl_net_busy_read; |
30 |
+ sk->sk_ll_usec = READ_ONCE(sysctl_net_busy_read); |
31 |
#endif |
32 |
|
33 |
sk->sk_max_pacing_rate = ~0UL; |
34 |
-- |
35 |
2.35.1 |
36 |
|