KCSAN: data-race in serial8250_do_startup / serial8250_handle_irq_locked (2)

Status: moderation: reported on 2026/10/19 23:02
Subsystems: serial
Labels: race:benign
[Documentation on labels]
Reported-by: syzbot+8245cf7edd6435e1cbde@syzkaller.appspotmail.com
First crash: 5h49m, last: 5h49m
▶ ▼ ✨ AI Jobs (1)
ID Workflow Result Correct Bug Created Started Finished Revision
14a2619f assessment-kcsan Benign: ✅ ❓ KCSAN: data-race in serial8250_do_startup / serial8250_handle_irq_locked (2) 2026/10/19 23:02 2026/10/19 23:02 2026/10/19 23:35 e931f328
▶ ▼ Similar bugs (1)
Kernel Title Rank 🛈 Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KCSAN: data-race in serial8250_do_startup / serial8250_handle_irq_locked serial prio:low 6 1 195d 195d 0/29 auto-obsoleted due to no activity on 2026/06/02 13:18

Sample crash report:
==================================================================
BUG: KCSAN: data-race in serial8250_do_startup / serial8250_handle_irq_locked

write to 0xffffffff8962df56 of 1 bytes by task 16763 on cpu 1:
 serial8250_do_startup+0x12f5/0x19d0 drivers/tty/serial/8250/8250_port.c:2390
 serial8250_startup+0x41/0x50 drivers/tty/serial/8250/8250_port.c:2410
 uart_port_startup drivers/tty/serial/serial_core.c:322 [inline]
 uart_startup+0x481/0xba0 drivers/tty/serial/serial_core.c:366
 uart_port_activate+0x67/0xc0 drivers/tty/serial/serial_core.c:1969
 tty_port_open+0x14c/0x1f0 drivers/tty/tty_port.c:798
 uart_open+0x30/0x40 drivers/tty/serial/serial_core.c:1949
 tty_open+0x3db/0xb00 drivers/tty/tty_io.c:2112
 chrdev_open+0x2eb/0x3a0 fs/char_dev.c:411
 do_dentry_open+0x49f/0xa60 fs/open.c:996
 vfs_open+0x37/0x1e0 fs/open.c:1101
 do_open fs/namei.c:4836 [inline]
 path_openat+0xca8/0x1190 fs/namei.c:4999
 do_file_open+0x16c/0x290 fs/namei.c:5028
 do_sys_openat2+0xa0/0x130 fs/open.c:1417
 do_sys_open fs/open.c:1423 [inline]
 __do_sys_openat fs/open.c:1439 [inline]
 __se_sys_openat fs/open.c:1434 [inline]
 __x64_sys_openat+0xf2/0x120 fs/open.c:1434
 x64_sys_call+0x1f72/0x2550 arch/x86/include/generated/asm/syscalls_64.h:258
 do_syscall_x64 arch/x86/entry/syscall_64.c:61 [inline]
 do_syscall_64+0x112/0x360 arch/x86/entry/syscall_64.c:84
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

read to 0xffffffff8962df56 of 1 bytes by interrupt on cpu 0:
 serial8250_handle_irq_locked+0x435/0x500 drivers/tty/serial/8250/8250_port.c:1857
 serial8250_handle_irq+0xb5/0x260 drivers/tty/serial/8250/8250_port.c:1875
 serial8250_default_handle_irq+0x8e/0x140 drivers/tty/serial/8250/8250_port.c:1889
 serial8250_interrupt+0x63/0x110 drivers/tty/serial/8250/8250_core.c:86
 __handle_irq_event_percpu+0x8b/0x480 kernel/irq/handle.c:209
 handle_irq_event_percpu kernel/irq/handle.c:246 [inline]
 handle_irq_event+0x64/0xf0 kernel/irq/handle.c:263
 handle_edge_irq+0x155/0x440 kernel/irq/chip.c:859
 generic_handle_irq_desc include/linux/irqdesc.h:188 [inline]
 handle_irq arch/x86/kernel/irq.c:209 [inline]
 call_irq_handler arch/x86/kernel/irq.c:-1 [inline]
 __common_interrupt+0x60/0xb0 arch/x86/kernel/irq.c:280
 common_interrupt+0x7e/0x90 arch/x86/kernel/irq.c:273
 asm_common_interrupt+0x26/0x40 arch/x86/include/asm/idtentry.h:665
 __tsan_read4+0xe/0x190 kernel/kcsan/core.c:1032
 jhash2 include/linux/jhash.h:138 [inline]
 hash_stack lib/stackdepot.c:571 [inline]
 stack_depot_save_flags+0x156/0x8e0 lib/stackdepot.c:672
 stack_depot_save+0xe/0x20 lib/stackdepot.c:747
 ref_tracker_free+0xa3/0x3f0 lib/ref_tracker.c:307
 netdev_tracker_free include/linux/netdevice.h:4551 [inline]
 netdev_put include/linux/netdevice.h:4568 [inline]
 neigh_destroy+0x221/0x3b0 net/core/neighbour.c:937
 neigh_release include/net/neighbour.h:459 [inline]
 neigh_cleanup_and_release+0x72/0x140 net/core/neighbour.c:121
 neigh_remove_one+0x26e/0x290 net/core/neighbour.c:249
 neigh_forced_gc net/core/neighbour.c:280 [inline]
 neigh_alloc net/core/neighbour.c:509 [inline]
 ___neigh_create+0x318/0x1250 net/core/neighbour.c:652
 __neigh_create+0x54/0x70 net/core/neighbour.c:740
 ip6_finish_output2+0x496/0xdb0 net/ipv6/ip6_output.c:130
 __ip6_finish_output net/ipv6/ip6_output.c:-1 [inline]
 ip6_finish_output+0x1e1/0x410 net/ipv6/ip6_output.c:221
 NF_HOOK_COND include/linux/netfilter.h:314 [inline]
 ip6_output+0x10a/0x280 net/ipv6/ip6_output.c:248
 dst_output include/net/dst.h:472 [inline]
 NF_HOOK include/linux/netfilter.h:325 [inline]
 mld_sendpack+0x4ca/0x7c0 net/ipv6/mcast.c:1890
 mld_send_initial_cr+0x133/0x1e0 net/ipv6/mcast.c:2308
 ipv6_mc_dad_complete+0x6d/0x3f0 net/ipv6/mcast.c:2316
 addrconf_dad_completed+0x370/0x890 net/ipv6/addrconf.c:4376
 addrconf_dad_work+0x8ac/0xbc0 net/ipv6/addrconf.c:-1
 process_one_work kernel/workqueue.c:3396 [inline]
 process_scheduled_works+0x56a/0xa50 kernel/workqueue.c:3479
 worker_thread+0x569/0x750 kernel/workqueue.c:3560
 kthread+0x223/0x270 kernel/kthread.c:436
 ret_from_fork+0x146/0x330 arch/x86/kernel/process.c:158
 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245

value changed: 0x00 -> 0x05

Reported by Kernel Concurrency Sanitizer on:
CPU: 0 UID: 0 PID: 364 Comm: kworker/u8:6 Not tainted syzkaller #0 PREEMPT(lazy) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/16/2026
Workqueue: ipv6_addrconf addrconf_dad_work
==================================================================

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2026/10/19 23:02 upstream c03c1a14507d 72cdc28d .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-kcsan-gce KCSAN: data-race in serial8250_do_startup / serial8250_handle_irq_locked
* Struck through repros no longer work on HEAD.