diff options
| author | Kuniyuki Iwashima <kuniyu@google.com> | 2026-05-02 06:12:54 +0300 |
|---|---|---|
| committer | Jakub Kicinski <kuba@kernel.org> | 2026-05-06 03:47:03 +0300 |
| commit | 944bfc1b1c6fe9417668006aae7124886bcca038 (patch) | |
| tree | 69c4e57bcaddb83fb3b0d312e893e0733007fdfe /include/linux/debugobjects.h | |
| parent | 8c699be3dad7bba87cdda485dc099226cfc2f706 (diff) | |
| download | linux-944bfc1b1c6fe9417668006aae7124886bcca038.tar.xz | |
udp_tunnel: Pass struct sock to udp_tunnel_sock_release().
None of the udp_tunnel users need struct socket in their
fast paths; it is only used for tunnel setup / teardown.
While the UDP tunnel interface accepts struct socket, this
encourages users to store the pointer unnecessarily. This
leads to extra dereferences when accessing struct sock fields
(e.g., sk->sk_user_data instead of sock->sk->sk_user_data).
Furthermore, these dereferences necessitate synchronize_rcu()
in udp_tunnel_sock_release() to protect the fast paths from
sock_orphan() setting sk->sk_socket to NULL.
This overhead can be avoided if users store the struct sock
pointer directly in their private structures.
As a prep, let's change udp_tunnel_sock_release() to take
struct sock instead of struct socket.
Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
Link: https://patch.msgid.link/20260502031401.3557229-2-kuniyu@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'include/linux/debugobjects.h')
0 files changed, 0 insertions, 0 deletions
