diff options
author | Eric Dumazet <edumazet@google.com> | 2022-05-12 18:56:01 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2022-05-13 13:17:25 +0200 |
commit | 4915d50e300e96929d2462041d6f6c6f061167fd (patch) | |
tree | c591cefada86457aee4870cd4d3ca45eedf33966 /net/ipv4/udp.c | |
parent | selftests: fib_nexthops: Make the test more robust (diff) | |
download | linux-4915d50e300e96929d2462041d6f6c6f061167fd.tar.xz linux-4915d50e300e96929d2462041d6f6c6f061167fd.zip |
inet: add READ_ONCE(sk->sk_bound_dev_if) in INET_MATCH()
INET_MATCH() runs without holding a lock on the socket.
We probably need to annotate most reads.
This patch makes INET_MATCH() an inline function
to ease our changes.
v2:
We remove the 32bit version of it, as modern compilers
should generate the same code really, no need to
try to be smarter.
Also make 'struct net *net' the first argument.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/udp.c')
-rw-r--r-- | net/ipv4/udp.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c index 9d5071c79c95..53342ce17172 100644 --- a/net/ipv4/udp.c +++ b/net/ipv4/udp.c @@ -2563,8 +2563,7 @@ static struct sock *__udp4_lib_demux_lookup(struct net *net, struct sock *sk; udp_portaddr_for_each_entry_rcu(sk, &hslot2->head) { - if (INET_MATCH(sk, net, acookie, rmt_addr, - loc_addr, ports, dif, sdif)) + if (INET_MATCH(net, sk, acookie, ports, dif, sdif)) return sk; /* Only check first socket in chain */ break; |