net: __sock_gen_cookie() cleanup
Adopt atomic64_try_cmpxchg() and remove the loop, to make the intent more obvious. Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
4ffa1d1c68
commit
4ebf802cf1
1 changed files with 6 additions and 6 deletions
|
@ -25,14 +25,14 @@ DEFINE_COOKIE(sock_cookie);
|
||||||
|
|
||||||
u64 __sock_gen_cookie(struct sock *sk)
|
u64 __sock_gen_cookie(struct sock *sk)
|
||||||
{
|
{
|
||||||
while (1) {
|
u64 res = atomic64_read(&sk->sk_cookie);
|
||||||
u64 res = atomic64_read(&sk->sk_cookie);
|
|
||||||
|
|
||||||
if (res)
|
if (!res) {
|
||||||
return res;
|
u64 new = gen_cookie_next(&sock_cookie);
|
||||||
res = gen_cookie_next(&sock_cookie);
|
|
||||||
atomic64_cmpxchg(&sk->sk_cookie, 0, res);
|
atomic64_try_cmpxchg(&sk->sk_cookie, &res, new);
|
||||||
}
|
}
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
int sock_diag_check_cookie(struct sock *sk, const __u32 *cookie)
|
int sock_diag_check_cookie(struct sock *sk, const __u32 *cookie)
|
||||||
|
|
Loading…
Add table
Reference in a new issue