diff options
Diffstat (limited to 'net/ipv4/udp.c')
-rw-r--r-- | net/ipv4/udp.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c index ced820318f94..c3ecec8a9e1c 100644 --- a/net/ipv4/udp.c +++ b/net/ipv4/udp.c | |||
@@ -256,7 +256,7 @@ static struct sock *__udp4_lib_lookup(struct net *net, __be32 saddr, | |||
256 | int dif, struct udp_table *udptable) | 256 | int dif, struct udp_table *udptable) |
257 | { | 257 | { |
258 | struct sock *sk, *result; | 258 | struct sock *sk, *result; |
259 | struct hlist_node *node; | 259 | struct hlist_node *node, *next; |
260 | unsigned short hnum = ntohs(dport); | 260 | unsigned short hnum = ntohs(dport); |
261 | unsigned int hash = udp_hashfn(net, hnum); | 261 | unsigned int hash = udp_hashfn(net, hnum); |
262 | struct udp_hslot *hslot = &udptable->hash[hash]; | 262 | struct udp_hslot *hslot = &udptable->hash[hash]; |
@@ -266,7 +266,7 @@ static struct sock *__udp4_lib_lookup(struct net *net, __be32 saddr, | |||
266 | begin: | 266 | begin: |
267 | result = NULL; | 267 | result = NULL; |
268 | badness = -1; | 268 | badness = -1; |
269 | sk_for_each_rcu(sk, node, &hslot->head) { | 269 | sk_for_each_rcu_safenext(sk, node, &hslot->head, next) { |
270 | /* | 270 | /* |
271 | * lockless reader, and SLAB_DESTROY_BY_RCU items: | 271 | * lockless reader, and SLAB_DESTROY_BY_RCU items: |
272 | * We must check this item was not moved to another chain | 272 | * We must check this item was not moved to another chain |