diff options
| author | Kuniyuki Iwashima <kuniyu@google.com> | 2026-05-02 06:13:04 +0300 |
|---|---|---|
| committer | Jakub Kicinski <kuba@kernel.org> | 2026-05-06 03:47:05 +0300 |
| commit | 173a79f6966ac5c6f1bd16f0556637ad4146a79c (patch) | |
| tree | ae6d8090a4c94d03c232e25cb3f272abefce95d1 /include/linux/workqueue_api.h | |
| parent | bc773b15eb19ae3e27dd3a3377f2fe006ce5f382 (diff) | |
| download | linux-173a79f6966ac5c6f1bd16f0556637ad4146a79c.tar.xz | |
fou: Store struct sock in struct fou.
fou does not need to access struct socket itself in the fast
path; it only reads struct sock, and struct socket is only used
for tunnel setup and teardown.
Let's store struct sock directly in struct fou.
fou_release() frees struct fou with kfree_rcu(), so fou no
longer needs synchronize_rcu() in udp_tunnel_sock_release().
Note that the error path in fou_create() looks buggy; once the
tunnel is set up and fou_add_to_port_list() fails, struct fou
should be freed with kfree_rcu() _after_ udp_tunnel_sock_release().
Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
Link: https://patch.msgid.link/20260502031401.3557229-12-kuniyu@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'include/linux/workqueue_api.h')
0 files changed, 0 insertions, 0 deletions
