From: John Fastabend Date: Thu, 21 Dec 2023 23:23:24 +0000 (-0800) Subject: bpf: sockmap, added comments describing update proto rules X-Git-Tag: v6.8-rc1~131^2~17^2~7^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7865dfb1eb941ddd25802a9e13b6ff5f3f4dc02f;p=thirdparty%2Fkernel%2Flinux.git 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 Signed-off-by: Martin KaFai Lau Reviewed-by: Jakub Sitnicki Link: https://lore.kernel.org/r/20231221232327.43678-3-john.fastabend@gmail.com --- diff --git a/include/linux/skmsg.h b/include/linux/skmsg.h index c953b8c0d2f43..888a4b217829f 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;