Subject: Re: [PATCH net-next v7 04/11] net: tunnel: allow noref dsts in udp_tunnel{,6}_dst_lookup

From: Sabrina Dubroca <[email-masked]>
Date: Fri, 30 Jan 2026 01:56:21 +0100

2026-01-27, 08:04:45 +0100, Marek Mietus wrote:
> Update udp_tunnel{,6}_dst_lookup to return noref dsts when possible.
> This is done using a new boolean which indicates whether the returned
> dst is noref. When the returned dst is noref, the dst is only valid
> inside the RCU read-side critical section in which it was queried.
> 
> Update all callers to properly use the new noref argument and convert
> all tunnels that use udp_tunnel{,6}_dst_lookup to noref. This affects
> bareudp, geneve and vxlan tunnels.

Maybe I'm missing something, but after this, all users of
udp_tunnel{,6}_dst_lookup need to be able to handle a noref dst? If
so, can we avoid the "if (!noref) release()" dance in all callers by
doing the release() before returning from _lookup()? The conditional
dst_release/ip_rt_put in this patch and some of the others feels
pretty ugly to me.

-- 
Sabrina