Eric Dumazet
68e8412031
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:03 -04:00
..
2021-09-15 09:50:34 +02:00
2024-01-05 15:12:29 +01:00
2023-01-14 10:16:18 +01:00
2024-02-23 08:41:55 +01:00
2023-12-20 15:44:29 +01:00
2023-12-20 15:44:28 +01:00
2022-06-22 14:13:17 +02:00
2023-12-20 15:44:28 +01:00
2024-03-26 18:21:52 -04:00
2023-01-14 10:15:31 +01:00
2021-07-14 16:56:29 +02:00
2023-11-28 16:54:54 +00:00
2023-03-17 08:45:11 +01:00
2024-02-23 08:42:29 +01:00
2023-10-25 11:54:15 +02:00
2024-03-26 18:22:03 -04:00
2023-08-11 11:57:50 +02:00
2023-11-20 11:06:55 +01:00
2023-06-21 15:45:38 +02:00
2024-01-25 14:37:50 -08:00
2023-07-27 08:44:10 +02:00
2024-01-25 14:37:56 -08:00
2024-03-26 18:22:03 -04:00
2022-11-03 23:57:51 +09:00
2024-01-05 15:12:24 +01:00
2024-03-26 18:21:54 -04:00
2024-03-26 18:21:53 -04:00
2024-03-26 18:21:46 -04:00
2024-03-26 18:21:54 -04:00
2023-08-26 15:26:51 +02:00
2024-03-26 18:21:53 -04:00
2022-04-27 13:53:50 +02:00
2024-02-23 08:42:17 +01:00
2024-03-01 13:16:43 +01:00
2022-12-14 11:32:01 +01:00
2023-02-22 12:55:58 +01:00
2024-03-06 14:37:50 +00:00
2024-01-25 14:37:44 -08:00
2024-03-15 10:48:15 -04:00
2024-01-25 14:37:40 -08:00
2024-03-06 14:37:48 +00:00
2024-03-15 10:48:17 -04:00
2024-02-23 08:42:26 +01:00
2023-05-30 12:57:52 +01:00
2024-02-23 08:42:23 +01:00
2024-03-26 18:22:03 -04:00
2022-01-11 15:25:01 +01:00
2023-12-13 18:27:06 +01:00
2024-01-25 14:37:38 -08:00
2024-03-15 10:48:15 -04:00
2024-01-05 15:12:28 +01:00
2024-01-05 15:12:24 +01:00
2024-02-23 08:42:20 +01:00
2024-03-01 13:16:42 +01:00
2023-10-10 21:53:39 +02:00
2024-02-23 08:41:55 +01:00
2021-11-18 14:04:27 +01:00
2024-03-26 18:22:01 -04:00
2024-02-23 08:42:20 +01:00
2024-03-01 13:16:51 +01:00
2024-03-26 18:21:49 -04:00
2024-01-25 14:37:45 -08:00
2024-03-06 14:37:49 +00:00
2024-03-26 18:21:54 -04:00
2023-07-27 08:44:09 +02:00
2023-10-25 11:54:19 +02:00
2021-06-18 10:00:06 +02:00
2023-06-21 15:45:38 +02:00
2023-06-21 15:45:38 +02:00
2024-01-15 18:48:04 +01:00