diff options
author | Eric Dumazet <edumazet@google.com> | 2023-07-28 18:03:18 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2023-07-29 20:13:41 +0300 |
commit | 8bf43be799d4b242ea552a14db10456446be843e (patch) | |
tree | e022e5d483cebc0f7a62f89b4095e07ab58ed599 /net/ipv4/raw.c | |
parent | e5f0d2dd3c2faa671711dac6d3ff3cef307bcfe3 (diff) | |
download | linux-8bf43be799d4b242ea552a14db10456446be843e.tar.xz |
net: annotate data-races around sk->sk_priority
sk_getsockopt() runs locklessly. This means sk->sk_priority
can be read while other threads are changing its value.
Other reads also happen without socket lock being held.
Add missing annotations where needed.
Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/raw.c')
-rw-r--r-- | net/ipv4/raw.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c index 7782ff5e6539..cb381f5aa464 100644 --- a/net/ipv4/raw.c +++ b/net/ipv4/raw.c @@ -348,7 +348,7 @@ static int raw_send_hdrinc(struct sock *sk, struct flowi4 *fl4, goto error; skb_reserve(skb, hlen); - skb->priority = sk->sk_priority; + skb->priority = READ_ONCE(sk->sk_priority); skb->mark = sockc->mark; skb->tstamp = sockc->transmit_time; skb_dst_set(skb, &rt->dst); |