diff options
| author | David S. Miller <davem@davemloft.net> | 2019-10-28 13:33:41 -0700 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2019-10-28 13:33:41 -0700 |
| commit | 2024305863d626bd44664c284fd609b6a56bb9ed (patch) | |
| tree | 961563fa2222cd852303abc9eb321a95fed5d774 /net/tipc/socket.c | |
| parent | fc11078dd3514c65eabce166b8431a56d8a667cb (diff) | |
| parent | 7c422d0ce97552dde4a97e6290de70ec6efb0fc6 (diff) | |
Merge branch 'net-avoid-KCSAN-splats'
Eric Dumazet says:
====================
net: avoid KCSAN splats
Often times we use skb_queue_empty() without holding a lock,
meaning that other cpus (or interrupt) can change the queue
under us. This is fine, but we need to properly annotate
the lockless intent to make sure the compiler wont over
optimize things.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/tipc/socket.c')
| -rw-r--r-- | net/tipc/socket.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/tipc/socket.c b/net/tipc/socket.c index f8bbc4aab213..4b92b196cfa6 100644 --- a/net/tipc/socket.c +++ b/net/tipc/socket.c @@ -740,7 +740,7 @@ static __poll_t tipc_poll(struct file *file, struct socket *sock, /* fall through */ case TIPC_LISTEN: case TIPC_CONNECTING: - if (!skb_queue_empty(&sk->sk_receive_queue)) + if (!skb_queue_empty_lockless(&sk->sk_receive_queue)) revents |= EPOLLIN | EPOLLRDNORM; break; case TIPC_OPEN: @@ -748,7 +748,7 @@ static __poll_t tipc_poll(struct file *file, struct socket *sock, revents |= EPOLLOUT; if (!tipc_sk_type_connectionless(sk)) break; - if (skb_queue_empty(&sk->sk_receive_queue)) + if (skb_queue_empty_lockless(&sk->sk_receive_queue)) break; revents |= EPOLLIN | EPOLLRDNORM; break; |
