diff options
author | Cong Wang <cong.wang@bytedance.com> | 2021-03-31 04:32:31 +0200 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2021-04-01 19:56:14 +0200 |
commit | 8a59f9d1e3d4340659fdfee8879dc09a6f2546e1 (patch) | |
tree | 22d59950e745c697e01c05b82ed67d7a9536bd88 /include/net/udp.h | |
parent | sock_map: Introduce BPF_SK_SKB_VERDICT (diff) | |
download | linux-8a59f9d1e3d4340659fdfee8879dc09a6f2546e1.tar.xz linux-8a59f9d1e3d4340659fdfee8879dc09a6f2546e1.zip |
sock: Introduce sk->sk_prot->psock_update_sk_prot()
Currently sockmap calls into each protocol to update the struct
proto and replace it. This certainly won't work when the protocol
is implemented as a module, for example, AF_UNIX.
Introduce a new ops sk->sk_prot->psock_update_sk_prot(), so each
protocol can implement its own way to replace the struct proto.
This also helps get rid of symbol dependencies on CONFIG_INET.
Signed-off-by: Cong Wang <cong.wang@bytedance.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20210331023237.41094-11-xiyou.wangcong@gmail.com
Diffstat (limited to 'include/net/udp.h')
-rw-r--r-- | include/net/udp.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/net/udp.h b/include/net/udp.h index d4d064c59232..df7cc1edc200 100644 --- a/include/net/udp.h +++ b/include/net/udp.h @@ -518,6 +518,7 @@ static inline struct sk_buff *udp_rcv_segment(struct sock *sk, #ifdef CONFIG_BPF_SYSCALL struct sk_psock; struct proto *udp_bpf_get_proto(struct sock *sk, struct sk_psock *psock); +int udp_bpf_update_proto(struct sock *sk, bool restore); #endif #endif /* _UDP_H */ |