]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
net: Fix a data-race around sysctl_tstamp_allow_data.
authorKuniyuki Iwashima <kuniyu@amazon.com>
Tue, 23 Aug 2022 17:46:50 +0000 (10:46 -0700)
committerStefan Bader <stefan.bader@canonical.com>
Fri, 7 Oct 2022 08:39:27 +0000 (10:39 +0200)
BugLink: https://bugs.launchpad.net/bugs/1991717
[ Upstream commit d2154b0afa73c0159b2856f875c6b4fe7cf6a95e ]

While reading sysctl_tstamp_allow_data, it can be changed
concurrently.  Thus, we need to add READ_ONCE() to its reader.

Fixes: b245be1f4db1 ("net-timestamp: no-payload only sysctl")
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>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
net/core/skbuff.c

index 5ebef94e14dc61b0dc65226b01539a93207df7ef..563848242ad33945ac623df12c3fc6e6b073a9ea 100644 (file)
@@ -4892,7 +4892,7 @@ static bool skb_may_tx_timestamp(struct sock *sk, bool tsonly)
 {
        bool ret;
 
-       if (likely(sysctl_tstamp_allow_data || tsonly))
+       if (likely(READ_ONCE(sysctl_tstamp_allow_data) || tsonly))
                return true;
 
        read_lock_bh(&sk->sk_callback_lock);