Eric Dumazet
84c510411e
packet: annotate data-races around ignore_outgoing
...
[ Upstream commit 6ebfad33161afacb3e1e59ed1c2feefef70f9f97 ]
ignore_outgoing is read locklessly from dev_queue_xmit_nit()
and packet_getsockopt()
Add appropriate READ_ONCE()/WRITE_ONCE() annotations.
syzbot reported:
BUG: KCSAN: data-race in dev_queue_xmit_nit / packet_setsockopt
write to 0xffff888107804542 of 1 bytes by task 22618 on cpu 0:
packet_setsockopt+0xd83/0xfd0 net/packet/af_packet.c:4003
do_sock_setsockopt net/socket.c:2311 [inline]
__sys_setsockopt+0x1d8/0x250 net/socket.c:2334
__do_sys_setsockopt net/socket.c:2343 [inline]
__se_sys_setsockopt net/socket.c:2340 [inline]
__x64_sys_setsockopt+0x66/0x80 net/socket.c:2340
do_syscall_64+0xd3/0x1d0
entry_SYSCALL_64_after_hwframe+0x6d/0x75
read to 0xffff888107804542 of 1 bytes by task 27 on cpu 1:
dev_queue_xmit_nit+0x82/0x620 net/core/dev.c:2248
xmit_one net/core/dev.c:3527 [inline]
dev_hard_start_xmit+0xcc/0x3f0 net/core/dev.c:3547
__dev_queue_xmit+0xf24/0x1dd0 net/core/dev.c:4335
dev_queue_xmit include/linux/netdevice.h:3091 [inline]
batadv_send_skb_packet+0x264/0x300 net/batman-adv/send.c:108
batadv_send_broadcast_skb+0x24/0x30 net/batman-adv/send.c:127
batadv_iv_ogm_send_to_if net/batman-adv/bat_iv_ogm.c:392 [inline]
batadv_iv_ogm_emit net/batman-adv/bat_iv_ogm.c:420 [inline]
batadv_iv_send_outstanding_bat_ogm_packet+0x3f0/0x4b0 net/batman-adv/bat_iv_ogm.c:1700
process_one_work kernel/workqueue.c:3254 [inline]
process_scheduled_works+0x465/0x990 kernel/workqueue.c:3335
worker_thread+0x526/0x730 kernel/workqueue.c:3416
kthread+0x1d1/0x210 kernel/kthread.c:388
ret_from_fork+0x4b/0x60 arch/x86/kernel/process.c:147
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:243
value changed: 0x00 -> 0x01
Reported by Kernel Concurrency Sanitizer on:
CPU: 1 PID: 27 Comm: kworker/u8:1 Tainted: G W 6.8.0-syzkaller-08073-g480e035fc4c7 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/29/2024
Workqueue: bat_events batadv_iv_send_outstanding_bat_ogm_packet
Fixes: fa788d986a3a ("packet: add sockopt to ignore outgoing packets")
Reported-by: syzbot+c669c1136495a2e7c31f@syzkaller.appspotmail.com
Closes: https://lore.kernel.org/netdev/CANn89i+Z7MfbkBLOv=p7KZ7=K1rKHO4P1OL5LYDCtBiyqsa9oQ@mail.gmail.com/T/#t
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Willem de Bruijn <willemdebruijn.kernel@gmail.com>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Reviewed-by: Jason Xing <kerneljasonxing@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-03-26 18:22:25 -04:00
..
2021-09-15 09:47:31 +02:00
2024-01-08 11:29:47 +01:00
2023-01-18 11:41:37 +01:00
2024-02-23 08:24:50 +01:00
2023-12-20 15:41:18 +01:00
2023-12-20 15:41:15 +01:00
2022-04-20 09:19:40 +02:00
2023-08-30 16:27:25 +02:00
2024-03-26 18:22:17 -04:00
2023-01-18 11:41:04 +01:00
2021-07-14 16:53:33 +02:00
2024-03-01 13:13:35 +01:00
2023-03-17 08:32:51 +01:00
2024-02-23 08:25:13 +01:00
2023-10-25 11:53:19 +02:00
2024-03-26 18:22:25 -04:00
2023-08-11 11:53:57 +02:00
2023-11-20 10:30:15 +01:00
2023-06-21 15:44:10 +02:00
2023-07-27 08:37:24 +02:00
2024-03-26 18:22:24 -04:00
2022-11-03 23:56:54 +09:00
2024-01-08 11:29:44 +01:00
2024-03-26 18:22:17 -04:00
2024-03-26 18:22:17 -04:00
2024-03-26 18:22:12 -04:00
2024-03-26 18:22:18 -04:00
2023-08-30 16:27:16 +02:00
2024-03-26 18:22:17 -04:00
2022-04-27 13:50:47 +02:00
2021-02-10 09:25:28 +01:00
2024-02-23 08:25:04 +01:00
2024-03-01 13:13:33 +01:00
2022-12-14 11:30:45 +01:00
2023-02-22 12:50:41 +01:00
2024-01-25 14:34:25 -08:00
2024-03-15 10:48:15 -04:00
2024-01-25 14:34:23 -08:00
2024-03-06 14:36:08 +00:00
2024-03-15 10:48:16 -04:00
2024-02-23 08:25:11 +01:00
2023-05-30 12:44:05 +01:00
2023-02-22 12:50:25 +01:00
2024-03-26 18:22:25 -04:00
2022-01-11 15:23:33 +01:00
2023-12-13 18:18:17 +01:00
2021-09-03 10:08:12 +02:00
2024-03-15 10:48:14 -04:00
2024-01-08 11:29:47 +01:00
2024-01-08 11:29:44 +01:00
2024-02-23 08:25:07 +01:00
2024-03-01 13:13:32 +01:00
2023-10-10 21:46:45 +02:00
2024-02-23 08:24:50 +01:00
2021-11-17 09:48:48 +01:00
2024-03-26 18:22:23 -04:00
2021-10-27 09:54:24 +02:00
2024-02-23 08:25:07 +01:00
2024-03-01 13:13:37 +01:00
2024-03-26 18:22:15 -04:00
2024-01-25 14:34:25 -08:00
2024-03-06 14:36:09 +00:00
2024-03-26 18:22:18 -04:00
2023-07-27 08:37:23 +02:00
2023-10-25 11:53:21 +02:00
2021-06-18 09:59:00 +02:00
2023-06-21 15:44:10 +02:00
2023-06-21 15:44:10 +02:00
2024-01-15 18:25:26 +01:00