diff options
| author | Kuniyuki Iwashima <kuniyu@google.com> | 2026-05-02 03:13:06 +0000 |
|---|---|---|
| committer | Jakub Kicinski <kuba@kernel.org> | 2026-05-05 17:47:05 -0700 |
| commit | fe57adbe0dacd00905f40db78468ac05f14cc419 (patch) | |
| tree | 88da725ff8c45e72cae09df9ed5e3935954d5365 /include/linux/timerqueue_types.h | |
| parent | 65c6e06d5abad33ff2ad43daad472efb90deafc2 (diff) | |
pfcp: Store struct sock in struct pfcp_dev.
pfcp 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 pfcp_dev.
pfcp_del_sock() is called from dev->netdev_ops->ndo_uninit().
The 2nd synchronize_net() in unregister_netdevice_many_notify()
ensures that inflight pfcp RX fast paths finish before pfcp_dev
is freed.
Note that synchronize_rcu() is added in the error path of
pfcp_newlink() since free_netdev() will free pfcp_dev immediately
once we remove synchronize_rcu() in udp_tunnel_sock_release().
Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
Link: https://patch.msgid.link/20260502031401.3557229-14-kuniyu@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'include/linux/timerqueue_types.h')
0 files changed, 0 insertions, 0 deletions
