On Wed, Jul 22, 2020 at 11:25 AM Jakub Sitnicki <jakub@xxxxxxxxxxxxxx> wrote: > > On Wed, Jul 22, 2020 at 05:05 PM CEST, Willem de Bruijn wrote: > > On Wed, Jul 22, 2020 at 11:02 AM Jakub Sitnicki <jakub@xxxxxxxxxxxxxx> wrote: > >> > >> On Wed, Jul 22, 2020 at 04:42 PM CEST, Kuniyuki Iwashima wrote: > >> > Can I submit a patch to net tree that rewrites udp[46]_lib_lookup2() to > >> > use only 'result' ? > >> > >> Feel free. That should make the conflict resolution even easier later > >> on. > > > > Thanks for the detailed analysis, Jakub. > > > > Would it be easier to fix this wholly in bpf-next, by introducing > > reuseport_result there? > > Did you mean replicating the Kuniyuki fix in bpf-next, or just > introducing the intermediate 'reuseport_result' var? > > I'm assuming the former, so that the conflict resolving later on will > reduce to selecting everything from bpf-next side. Indeed. Since you are already adding a patch to bpf-next to move the reuseport_has_conns check back. At the same time, it can introduce reuseport_result: if (score > badness) { reuseport_result = lookup_reuseport(net, sk, skb, saddr, sport, daddr, hnum); if (reuseport_result && !reuseport_has_conns(sk, false)) return reuseport_result; result = reuseport_result ? : sk; badness = score; } > TBH, I don't what is the preferred way to handle it. Perhaps DaveM or > Alexei/Daniel can say what would make their life easiest? Good point. With the above, there still remains a merge conflict, of course. But then we can take bpf-next as is, so I think it would save a separate patch to net. But not sure whether that helps anything. It does add an unnecessary variable.