diff options
| author | Kuniyuki Iwashima <kuniyu@google.com> | 2026-05-02 03:13:05 +0000 |
|---|---|---|
| committer | Jakub Kicinski <kuba@kernel.org> | 2026-05-05 17:47:05 -0700 |
| commit | 65c6e06d5abad33ff2ad43daad472efb90deafc2 (patch) | |
| tree | 9d7473412dfbb27d5152eb3bbd1b0eb45bfce1e6 /include/linux/timerqueue_types.h | |
| parent | 173a79f6966ac5c6f1bd16f0556637ad4146a79c (diff) | |
amt: Store struct sock in struct amt_dev.
amt 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 amt.
amt_dev_stop() is called as dev->netdev_ops->ndo_stop().
synchronize_net() in unregister_netdevice_many_notify() ensures
that inflight amt RX fast paths finish before amt_dev is freed.
amt no longer needs synchronize_rcu() in udp_tunnel_sock_release().
Note that amt_dev_stop() looks buggy; cancel_delayed_work_sync()
should be called after udp_tunnel_sock_release().
Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
Link: https://patch.msgid.link/20260502031401.3557229-13-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
