"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "net/ipv6/udp.c" between
linux-5.2.16.tar.xz and linux-5.2.17.tar.xz

About: The full source of the Linux kernel 5.2.x (stable)

udp.c  (linux-5.2.16.tar.xz):udp.c  (linux-5.2.17.tar.xz)
skipping to change at line 171 skipping to change at line 171
struct sock *sk, *result; struct sock *sk, *result;
int score, badness; int score, badness;
u32 hash = 0; u32 hash = 0;
result = NULL; result = NULL;
badness = -1; badness = -1;
udp_portaddr_for_each_entry_rcu(sk, &hslot2->head) { udp_portaddr_for_each_entry_rcu(sk, &hslot2->head) {
score = compute_score(sk, net, saddr, sport, score = compute_score(sk, net, saddr, sport,
daddr, hnum, dif, sdif, exact_dif); daddr, hnum, dif, sdif, exact_dif);
if (score > badness) { if (score > badness) {
if (sk->sk_reuseport) { if (sk->sk_reuseport &&
sk->sk_state != TCP_ESTABLISHED) {
hash = udp6_ehashfn(net, daddr, hnum, hash = udp6_ehashfn(net, daddr, hnum,
saddr, sport); saddr, sport);
result = reuseport_select_sock(sk, hash, skb, result = reuseport_select_sock(sk, hash, skb,
sizeof(struct udphdr)); sizeof(struct udphdr));
if (result) if (result && !reuseport_has_conns(sk, false))
return result; return result;
} }
result = sk; result = sk;
badness = score; badness = score;
} }
} }
return result; return result;
} }
/* rcu_read_lock() must be held */ /* rcu_read_lock() must be held */
 End of changes. 2 change blocks. 
2 lines changed or deleted 3 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)