Eric Dumazet
2c02c5059c
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:20:10 -04:00
..
2024-01-01 12:42:41 +00:00
2024-01-31 16:19:01 -08:00
2023-12-20 17:01:50 +01:00
2023-12-20 17:01:48 +01:00
2023-09-18 12:56:58 +01:00
2023-08-24 10:51:39 -07:00
2024-03-26 18:19:39 -04:00
2024-02-05 20:14:20 +00:00
2023-05-31 13:06:57 +02:00
2024-03-06 14:48:36 +00:00
2023-06-24 15:50:13 -07:00
2024-02-23 09:25:17 +01:00
2024-03-01 13:34:56 +01:00
2024-03-26 18:20:10 -04:00
2023-08-01 21:07:46 -07:00
2023-11-20 11:59:35 +01:00
2024-03-01 13:35:09 +01:00
2024-01-25 15:35:41 -08:00
2023-08-09 13:08:09 -07:00
2024-01-25 15:36:00 -08:00
2024-02-23 09:24:50 +01:00
2024-03-26 18:20:08 -04:00
2023-08-29 17:39:15 -07:00
2024-01-01 12:42:30 +00:00
2024-03-26 18:20:08 -04:00
2024-03-26 18:19:39 -04:00
2024-03-26 18:19:12 -04:00
2024-03-26 18:19:40 -04:00
2023-08-18 12:44:56 -07:00
2024-03-26 18:19:40 -04:00
2024-02-05 20:14:36 +00:00
2024-03-26 18:19:13 -04:00
2023-06-24 15:41:46 -07:00
2024-03-26 18:19:34 -04:00
2023-08-15 15:26:18 -07:00
2024-03-06 14:48:42 +00:00
2024-01-25 15:35:20 -08:00
2024-03-15 10:48:19 -04:00
2024-01-25 15:35:14 -08:00
2024-03-06 14:48:34 +00:00
2024-03-15 10:48:21 -04:00
2024-02-23 09:25:02 +01:00
2023-06-10 00:11:41 -07:00
2024-02-23 09:24:51 +01:00
2024-03-26 18:20:10 -04:00
2024-03-01 13:35:10 +01:00
2023-12-13 18:45:10 +01:00
2024-01-20 11:51:47 +01:00
2024-03-15 10:48:18 -04:00
2024-01-01 12:42:41 +00:00
2024-01-01 12:42:31 +00:00
2024-02-16 19:10:50 +01:00
2024-03-26 18:20:08 -04:00
2024-01-25 15:35:30 -08:00
2024-02-05 20:14:25 +00:00
2024-03-26 18:20:01 -04:00
2024-03-01 13:35:06 +01:00
2024-02-16 19:10:50 +01:00
2024-03-06 14:48:37 +00:00
2024-03-26 18:19:23 -04:00
2024-01-25 15:35:26 -08:00
2024-03-06 14:48:40 +00:00
2024-03-26 18:19:41 -04:00
2024-03-01 13:35:05 +01:00
2024-03-26 18:19:15 -04:00
2023-04-14 11:09:27 +01:00
2023-07-19 10:07:27 -07:00
2023-04-19 18:48:48 -07:00
2024-01-10 17:16:51 +01:00
2023-08-15 15:26:17 -07:00