hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
kernel/net/core/sock_diag.c
....@@ -11,7 +11,7 @@
1111 #include <linux/tcp.h>
1212 #include <linux/workqueue.h>
1313 #include <linux/nospec.h>
14
-
14
+#include <linux/cookie.h>
1515 #include <linux/inet_diag.h>
1616 #include <linux/sock_diag.h>
1717
....@@ -20,14 +20,16 @@
2020 static DEFINE_MUTEX(sock_diag_table_mutex);
2121 static struct workqueue_struct *broadcast_wq;
2222
23
-u64 sock_gen_cookie(struct sock *sk)
23
+DEFINE_COOKIE(sock_cookie);
24
+
25
+u64 __sock_gen_cookie(struct sock *sk)
2426 {
2527 while (1) {
2628 u64 res = atomic64_read(&sk->sk_cookie);
2729
2830 if (res)
2931 return res;
30
- res = atomic64_inc_return(&sock_net(sk)->cookie_gen);
32
+ res = gen_cookie_next(&sock_cookie);
3133 atomic64_cmpxchg(&sk->sk_cookie, 0, res);
3234 }
3335 }