aboutsummaryrefslogtreecommitdiff
path: root/net/ipv4/raw.c
diff options
context:
space:
mode:
authorGravatar Eric Dumazet <edumazet@google.com> 2023-08-16 08:15:33 +0000
committerGravatar David S. Miller <davem@davemloft.net> 2023-08-16 11:09:16 +0100
commitc274af2242693f59f00851b3660a21b10bcd76cc (patch)
tree9e6dff9911b9a0fd9b26f973ea89217f5ca29da0 /net/ipv4/raw.c
parentMerge branch 'redundant-of_match_ptr' (diff)
downloadlinux-c274af2242693f59f00851b3660a21b10bcd76cc.tar.gz
linux-c274af2242693f59f00851b3660a21b10bcd76cc.tar.bz2
linux-c274af2242693f59f00851b3660a21b10bcd76cc.zip
inet: introduce inet->inet_flags
Various inet fields are currently racy. do_ip_setsockopt() and do_ip_getsockopt() are mostly holding the socket lock, but some (fast) paths do not. Use a new inet->inet_flags to hold atomic bits in the series. Remove inet->cmsg_flags, and use instead 9 bits from inet_flags. Signed-off-by: Eric Dumazet <edumazet@google.com> Acked-by: Soheil Hassas Yeganeh <soheil@google.com> Reviewed-by: Simon Horman <horms@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/raw.c')
-rw-r--r--net/ipv4/raw.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c
index cb381f5aa464..e6e813f4aa31 100644
--- a/net/ipv4/raw.c
+++ b/net/ipv4/raw.c
@@ -767,7 +767,7 @@ static int raw_recvmsg(struct sock *sk, struct msghdr *msg, size_t len,
memset(&sin->sin_zero, 0, sizeof(sin->sin_zero));
*addr_len = sizeof(*sin);
}
- if (inet->cmsg_flags)
+ if (inet_cmsg_flags(inet))
ip_cmsg_recv(msg, skb);
if (flags & MSG_TRUNC)
copied = skb->len;