Commit 4ebf802c authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller
Browse files

net: __sock_gen_cookie() cleanup



Adopt atomic64_try_cmpxchg() and remove the loop,
to make the intent more obvious.

Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 4ffa1d1c
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -25,14 +25,14 @@ DEFINE_COOKIE(sock_cookie);

u64 __sock_gen_cookie(struct sock *sk)
{
	while (1) {
	u64 res = atomic64_read(&sk->sk_cookie);

		if (res)
			return res;
		res = gen_cookie_next(&sock_cookie);
		atomic64_cmpxchg(&sk->sk_cookie, 0, res);
	if (!res) {
		u64 new = gen_cookie_next(&sock_cookie);

		atomic64_try_cmpxchg(&sk->sk_cookie, &res, new);
	}
	return res;
}

int sock_diag_check_cookie(struct sock *sk, const __u32 *cookie)