diff options
author | John Fastabend <john.fastabend@gmail.com> | 2023-12-22 02:23:24 +0300 |
---|---|---|
committer | Martin KaFai Lau <martin.lau@kernel.org> | 2024-01-04 03:50:16 +0300 |
commit | 7865dfb1eb941ddd25802a9e13b6ff5f3f4dc02f (patch) | |
tree | 80e1650f741a44c94e7ed22c15545aa603839b8f /include/linux/skmsg.h | |
parent | 16b2f264983dc264c1560cc0170e760dec1bf54f (diff) | |
download | linux-7865dfb1eb941ddd25802a9e13b6ff5f3f4dc02f.tar.xz |
bpf: sockmap, added comments describing update proto rules
Add a comment describing that the psock update proto callbback can be
called multiple times and this must be safe.
Signed-off-by: John Fastabend <john.fastabend@gmail.com>
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
Reviewed-by: Jakub Sitnicki <jakub@cloudflare.com>
Link: https://lore.kernel.org/r/20231221232327.43678-3-john.fastabend@gmail.com
Diffstat (limited to 'include/linux/skmsg.h')
-rw-r--r-- | include/linux/skmsg.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/include/linux/skmsg.h b/include/linux/skmsg.h index c953b8c0d2f4..888a4b217829 100644 --- a/include/linux/skmsg.h +++ b/include/linux/skmsg.h @@ -100,6 +100,11 @@ struct sk_psock { void (*saved_close)(struct sock *sk, long timeout); void (*saved_write_space)(struct sock *sk); void (*saved_data_ready)(struct sock *sk); + /* psock_update_sk_prot may be called with restore=false many times + * so the handler must be safe for this case. It will be called + * exactly once with restore=true when the psock is being destroyed + * and psock refcnt is zero, but before an RCU grace period. + */ int (*psock_update_sk_prot)(struct sock *sk, struct sk_psock *psock, bool restore); struct proto *sk_proto; |