bpf: sockmap, added comments describing update proto rules
authorJohn Fastabend <john.fastabend@gmail.com>
Thu, 21 Dec 2023 23:23:24 +0000 (15:23 -0800)
committerMartin KaFai Lau <martin.lau@kernel.org>
Thu, 4 Jan 2024 00:50:16 +0000 (16:50 -0800)
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
include/linux/skmsg.h

index c953b8c..888a4b2 100644 (file)
@@ -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;