]> www.infradead.org Git - users/jedix/linux-maple.git/commit
udp_tunnel: use static call for GRO hooks when possible
authorPaolo Abeni <pabeni@redhat.com>
Mon, 7 Apr 2025 15:45:42 +0000 (17:45 +0200)
committerJakub Kicinski <kuba@kernel.org>
Wed, 9 Apr 2025 01:19:45 +0000 (18:19 -0700)
commit5d7f5b2f6b935517ee5fd8058dc32342a5cba3e1
tree42374557872d888984158a19d5abbb2f408129d3
parenta36283e2b683f172aa1760c77325e50b16c0f792
udp_tunnel: use static call for GRO hooks when possible

It's quite common to have a single UDP tunnel type active in the
whole system. In such a case we can replace the indirect call for
the UDP tunnel GRO callback with a static call.

Add the related accounting in the control path and switch to static
call when possible. To keep the code simple use a static array for
the registered tunnel types, and size such array based on the kernel
config.

Note that there are valid kernel configurations leading to
UDP_MAX_TUNNEL_TYPES == 0 even with IS_ENABLED(CONFIG_NET_UDP_TUNNEL),
Explicitly skip the accounting in such a case, to avoid compile warning
when accessing "udp_tunnel_gro_types".

Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Link: https://patch.msgid.link/53d156cdfddcc9678449e873cc83e68fa1582653.1744040675.git.pabeni@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/net/udp_tunnel.h
net/ipv4/udp_offload.c