Eric Dumazet
ff999198ec
net-timestamp: convert sk->sk_tskey to atomic_t
[ Upstream commit a1cdec57e03a1352e92fbbe7974039dda4efcec0 ]
UDP sendmsg() can be lockless, this is causing all kinds
of data races.
This patch converts sk->sk_tskey to remove one of these races.
BUG: KCSAN: data-race in __ip_append_data / __ip_append_data
read to 0xffff8881035d4b6c of 4 bytes by task 8877 on cpu 1:
__ip_append_data+0x1c1/0x1de0 net/ipv4/ip_output.c:994
ip_make_skb+0x13f/0x2d0 net/ipv4/ip_output.c:1636
udp_sendmsg+0x12bd/0x14c0 net/ipv4/udp.c:1249
inet_sendmsg+0x5f/0x80 net/ipv4/af_inet.c:819
sock_sendmsg_nosec net/socket.c:705 [inline]
sock_sendmsg net/socket.c:725 [inline]
____sys_sendmsg+0x39a/0x510 net/socket.c:2413
___sys_sendmsg net/socket.c:2467 [inline]
__sys_sendmmsg+0x267/0x4c0 net/socket.c:2553
__do_sys_sendmmsg net/socket.c:2582 [inline]
__se_sys_sendmmsg net/socket.c:2579 [inline]
__x64_sys_sendmmsg+0x53/0x60 net/socket.c:2579
do_syscall_x64 arch/x86/entry/common.c:50 [inline]
do_syscall_64+0x44/0xd0 arch/x86/entry/common.c:80
entry_SYSCALL_64_after_hwframe+0x44/0xae
write to 0xffff8881035d4b6c of 4 bytes by task 8880 on cpu 0:
__ip_append_data+0x1d8/0x1de0 net/ipv4/ip_output.c:994
ip_make_skb+0x13f/0x2d0 net/ipv4/ip_output.c:1636
udp_sendmsg+0x12bd/0x14c0 net/ipv4/udp.c:1249
inet_sendmsg+0x5f/0x80 net/ipv4/af_inet.c:819
sock_sendmsg_nosec net/socket.c:705 [inline]
sock_sendmsg net/socket.c:725 [inline]
____sys_sendmsg+0x39a/0x510 net/socket.c:2413
___sys_sendmsg net/socket.c:2467 [inline]
__sys_sendmmsg+0x267/0x4c0 net/socket.c:2553
__do_sys_sendmmsg net/socket.c:2582 [inline]
__se_sys_sendmmsg net/socket.c:2579 [inline]
__x64_sys_sendmmsg+0x53/0x60 net/socket.c:2579
do_syscall_x64 arch/x86/entry/common.c:50 [inline]
do_syscall_64+0x44/0xd0 arch/x86/entry/common.c:80
entry_SYSCALL_64_after_hwframe+0x44/0xae
value changed: 0x0000054d -> 0x0000054e
Reported by Kernel Concurrency Sanitizer on:
CPU: 0 PID: 8880 Comm: syz-executor.5 Not tainted 5.17.0-rc2-syzkaller-00167-gdcb85f85fa6f-dirty #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Fixes: 09c2d251b7 ("net-timestamp: add key to disambiguate concurrent datagrams")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Willem de Bruijn <willemb@google.com>
Reported-by: syzbot <syzkaller@googlegroups.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-03-02 11:48:01 +01:00
..
2021-08-13 14:09:19 -07:00
2021-09-30 13:29:09 +01:00
2021-08-05 11:36:59 +01:00
2022-01-27 11:05:26 +01:00
2022-01-27 11:05:39 +01:00
2022-02-23 12:03:12 +01:00
2021-12-08 09:04:46 +01:00
2021-08-05 13:27:50 +01:00
2021-12-08 09:04:43 +01:00
2022-03-02 11:47:55 +01:00
2022-01-27 11:04:02 +01:00
2021-08-19 13:19:30 +01:00
2021-08-11 14:43:16 -07:00
2022-01-11 15:35:14 +01:00
2021-07-15 18:17:49 -07:00
2021-12-14 10:57:19 +01:00
2022-01-27 11:05:35 +01:00
2022-02-01 17:27:08 +01:00
2022-01-27 11:04:38 +01:00
2021-09-13 16:35:58 -07:00
2021-09-13 16:35:58 -07:00
2021-08-24 10:46:31 +01:00
2021-09-03 11:48:28 +01:00
2021-08-17 00:45:07 +02:00
2022-02-23 12:03:12 +01:00
2021-07-20 06:00:38 -07:00
2021-07-22 00:52:04 -07:00
2022-03-02 11:48:01 +01:00
2021-12-14 10:57:18 +01:00
2021-10-22 12:35:51 -07:00
2022-01-27 11:03:50 +01:00
2022-03-02 11:48:01 +01:00
2021-11-18 19:16:34 +01:00
2021-10-22 17:23:53 -07:00