From: Willem de Bruijn <willemb@xxxxxxxxxx> Commit efc6b6f6c311 ("udp: Improve load balancing for SO_REUSEPORT.") in net conflicts with Commit 72f7e9440e9b ("udp: Run SK_LOOKUP BPF program on socket lookup") in bpf-next. Commit 4a0e87bb1836 ("udp: Don't discard reuseport selection when group has connections") also in bpf-next reduces the conflict. Further simplify by applying the main change of the first commit to bpf-next. After this a conflict remains, but the bpf-next side can be taken as is. Now unused variable reuseport_result added in net must also be removed. That applies without a conflict, so is harder to spot. Link: http://patchwork.ozlabs.org/project/netdev/patch/20200722165227.51046-1-kuniyu@xxxxxxxxxxxx/ Signed-off-by: Willem de Bruijn <willemb@xxxxxxxxxx> --- net/ipv4/udp.c | 3 ++- net/ipv6/udp.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c index 9397690b3737..67f8e880d7f3 100644 --- a/net/ipv4/udp.c +++ b/net/ipv4/udp.c @@ -448,7 +448,8 @@ static struct sock *udp4_lib_lookup2(struct net *net, return result; badness = score; - result = sk; + if (!result) + result = sk; } } return result; diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c index ed282b0fe8ac..827a01b50b9b 100644 --- a/net/ipv6/udp.c +++ b/net/ipv6/udp.c @@ -180,8 +180,9 @@ static struct sock *udp6_lib_lookup2(struct net *net, if (result && !reuseport_has_conns(sk, false)) return result; - result = sk; badness = score; + if (!result) + result = sk; } } return result; -- 2.28.0.rc0.142.g3c755180ce-goog