From: Kuniyuki Iwashima Date: Tue, 23 Aug 2022 17:46:50 +0000 (-0700) Subject: net: Fix a data-race around sysctl_tstamp_allow_data. X-Git-Tag: v5.19.6~88 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6fc89f990716ec516dfd817c785daab5be6d98aa;p=thirdparty%2Fkernel%2Fstable.git net: Fix a data-race around sysctl_tstamp_allow_data. [ 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 Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 5b3559cb1d827..bebf58464d667 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -4772,7 +4772,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);