Eric Dumazet
0c745b5141
kcm: annotate data-races around kcm->rx_wait
...
kcm->rx_psock can be read locklessly in kcm_rfree().
Annotate the read and writes accordingly.
syzbot reported:
BUG: KCSAN: data-race in kcm_rcv_strparser / kcm_rfree
write to 0xffff88810784e3d0 of 1 bytes by task 1823 on cpu 1:
reserve_rx_kcm net/kcm/kcmsock.c:283 [inline]
kcm_rcv_strparser+0x250/0x3a0 net/kcm/kcmsock.c:363
__strp_recv+0x64c/0xd20 net/strparser/strparser.c:301
strp_recv+0x6d/0x80 net/strparser/strparser.c:335
tcp_read_sock+0x13e/0x5a0 net/ipv4/tcp.c:1703
strp_read_sock net/strparser/strparser.c:358 [inline]
do_strp_work net/strparser/strparser.c:406 [inline]
strp_work+0xe8/0x180 net/strparser/strparser.c:415
process_one_work+0x3d3/0x720 kernel/workqueue.c:2289
worker_thread+0x618/0xa70 kernel/workqueue.c:2436
kthread+0x1a9/0x1e0 kernel/kthread.c:376
ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:306
read to 0xffff88810784e3d0 of 1 bytes by task 17869 on cpu 0:
kcm_rfree+0x121/0x220 net/kcm/kcmsock.c:181
skb_release_head_state+0x8e/0x160 net/core/skbuff.c:841
skb_release_all net/core/skbuff.c:852 [inline]
__kfree_skb net/core/skbuff.c:868 [inline]
kfree_skb_reason+0x5c/0x260 net/core/skbuff.c:891
kfree_skb include/linux/skbuff.h:1216 [inline]
kcm_recvmsg+0x226/0x2b0 net/kcm/kcmsock.c:1161
____sys_recvmsg+0x16c/0x2e0
___sys_recvmsg net/socket.c:2743 [inline]
do_recvmmsg+0x2f1/0x710 net/socket.c:2837
__sys_recvmmsg net/socket.c:2916 [inline]
__do_sys_recvmmsg net/socket.c:2939 [inline]
__se_sys_recvmmsg net/socket.c:2932 [inline]
__x64_sys_recvmmsg+0xde/0x160 net/socket.c:2932
do_syscall_x64 arch/x86/entry/common.c:50 [inline]
do_syscall_64+0x2b/0x70 arch/x86/entry/common.c:80
entry_SYSCALL_64_after_hwframe+0x63/0xcd
value changed: 0x01 -> 0x00
Reported by Kernel Concurrency Sanitizer on:
CPU: 0 PID: 17869 Comm: syz-executor.2 Not tainted 6.1.0-rc1-syzkaller-00010-gbb1a1146467a-dirty #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/22/2022
Fixes: ab7ac4eb9832 ("kcm: Kernel Connection Multiplexor module")
Reported-by: syzbot <syzkaller@googlegroups.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2022-10-24 10:57:55 +01:00
..
2022-06-09 21:53:28 +02:00
2022-10-07 21:23:09 +09:00
2022-10-11 17:42:55 -06:00
2022-08-25 10:33:21 +02:00
2022-10-15 11:08:36 +01:00
2022-08-22 17:55:50 -07:00
2022-09-22 13:02:10 -07:00
2022-10-07 17:04:10 -07:00
2022-09-07 11:05:17 -07:00
2022-09-30 12:35:29 +01:00
2022-08-22 17:57:35 -07:00
2022-09-23 13:53:10 +02:00
2022-10-16 15:27:07 -07:00
2022-10-20 17:24:59 -07:00
2022-10-11 17:42:58 -06:00
2022-10-15 11:15:27 +01:00
2022-08-25 10:33:21 +02:00
2022-10-21 13:18:05 +01:00
2022-10-18 19:18:27 -07:00
2022-10-05 12:37:10 +02:00
2022-10-20 17:24:59 -07:00
2022-10-20 17:24:59 -07:00
2022-06-10 16:21:27 -07:00
2022-10-24 10:57:55 +01:00
2022-08-24 12:51:50 +01:00
2022-08-29 12:47:15 +01:00
2022-06-09 21:52:55 -07:00
2022-10-16 15:27:07 -07:00
2022-08-29 11:10:22 +02:00
2022-10-12 13:30:50 +01:00
2022-08-29 13:02:27 +01:00
2022-10-03 11:18:53 +01:00
2022-08-29 12:47:15 +01:00
2022-10-20 17:24:59 -07:00
2022-08-29 12:47:15 +01:00
2022-09-30 17:43:09 -07:00
2022-09-27 07:45:18 -07:00
2022-10-16 15:27:07 -07:00
2022-10-11 17:42:55 -06:00
2022-08-29 12:47:15 +01:00
2022-08-15 11:21:42 +01:00
2022-10-11 17:42:58 -06:00
2022-08-22 14:24:54 +01:00
2022-09-19 17:58:47 -07:00
2022-10-20 17:24:59 -07:00
2022-10-11 17:42:58 -06:00
2022-10-15 11:12:12 +01:00
2022-07-08 18:38:44 -07:00
2022-10-16 15:27:07 -07:00
2022-06-09 21:52:55 -07:00
2022-10-20 21:08:17 -07:00
2022-10-14 08:25:26 +01:00
2022-10-16 15:27:07 -07:00
2022-10-03 17:44:18 -07:00
2022-10-13 11:59:56 +02:00
2022-08-08 20:48:51 -07:00
2022-10-03 17:44:18 -07:00
2022-10-11 17:42:55 -06:00
2022-09-20 08:23:20 -07:00
2022-08-22 14:26:30 +01:00
2022-09-20 14:23:56 -07:00
2022-08-22 14:26:30 +01:00
2022-10-06 16:55:41 -07:00