Commit 251cd405 authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller
Browse files

net: annotate data-races around sk->sk_bind_phc



sk->sk_bind_phc is read locklessly. Add corresponding annotations.

Fixes: d463126e ("net: sock: extend SO_TIMESTAMPING for PHC binding")
Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
Cc: Yangbo Lu <yangbo.lu@nxp.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent e3390b30
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -894,7 +894,7 @@ static int sock_timestamping_bind_phc(struct sock *sk, int phc_index)
	if (!match)
		return -EINVAL;

	sk->sk_bind_phc = phc_index;
	WRITE_ONCE(sk->sk_bind_phc, phc_index);

	return 0;
}
@@ -1720,7 +1720,7 @@ int sk_getsockopt(struct sock *sk, int level, int optname,
	case SO_TIMESTAMPING_OLD:
		lv = sizeof(v.timestamping);
		v.timestamping.flags = READ_ONCE(sk->sk_tsflags);
		v.timestamping.bind_phc = sk->sk_bind_phc;
		v.timestamping.bind_phc = READ_ONCE(sk->sk_bind_phc);
		break;

	case SO_RCVTIMEO_OLD:
+1 −1
Original line number Diff line number Diff line
@@ -939,7 +939,7 @@ void __sock_recv_timestamp(struct msghdr *msg, struct sock *sk,

		if (tsflags & SOF_TIMESTAMPING_BIND_PHC)
			hwtstamp = ptp_convert_timestamp(&hwtstamp,
							 sk->sk_bind_phc);
							 READ_ONCE(sk->sk_bind_phc));

		if (ktime_to_timespec64_cond(hwtstamp, tss.ts + 2)) {
			empty = 0;