================================ WARNING: inconsistent lock state syzkaller #0 Tainted: G L -------------------------------- inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage. kworker/1:4/23396 [HC1[1]:SC0[6]:HE0:SE0] takes: ffff888032bf0868 (&dev->spinlock){?...}-{3:3}, at: spin_lock include/linux/spinlock.h:341 [inline] ffff888032bf0868 (&dev->spinlock){?...}-{3:3}, at: das16m1_interrupt+0x68/0x120 drivers/comedi/drivers/das16m1.c:460 {HARDIRQ-ON-W} state was registered at: lock_acquire kernel/locking/lockdep.c:5868 [inline] lock_acquire+0x1cf/0x380 kernel/locking/lockdep.c:5825 __raw_spin_lock_bh include/linux/spinlock_api_smp.h:150 [inline] _raw_spin_lock_bh+0x33/0x40 kernel/locking/spinlock.c:178 spin_lock_bh include/linux/spinlock.h:347 [inline] waveform_ao_cancel+0x96/0x150 drivers/comedi/drivers/comedi_test.c:628 do_cancel+0xf4/0x180 drivers/comedi/comedi_fops.c:818 comedi_close+0x2f6/0x470 drivers/comedi/comedi_fops.c:3036 __fput+0x3ff/0xb40 fs/file_table.c:469 task_work_run+0x150/0x240 kernel/task_work.c:233 resume_user_mode_work include/linux/resume_user_mode.h:50 [inline] __exit_to_user_mode_loop kernel/entry/common.c:67 [inline] exit_to_user_mode_loop+0x100/0x4a0 kernel/entry/common.c:98 __exit_to_user_mode_prepare include/linux/irq-entry-common.h:226 [inline] syscall_exit_to_user_mode_prepare include/linux/irq-entry-common.h:256 [inline] syscall_exit_to_user_mode include/linux/entry-common.h:325 [inline] do_syscall_64+0x67c/0xf80 arch/x86/entry/syscall_64.c:100 entry_SYSCALL_64_after_hwframe+0x77/0x7f irq event stamp: 689935 hardirqs last enabled at (689934): [] irqentry_exit+0x180/0x670 kernel/entry/common.c:242 hardirqs last disabled at (689935): [] common_interrupt+0x19/0xe0 arch/x86/kernel/irq.c:326 softirqs last enabled at (689904): [] rcu_lock_release include/linux/rcupdate.h:322 [inline] softirqs last enabled at (689904): [] rcu_read_unlock_bh include/linux/rcupdate.h:921 [inline] softirqs last enabled at (689904): [] mod_peer_timer+0x16f/0x2c0 drivers/net/wireguard/timers.c:38 softirqs last disabled at (689908): [] wg_socket_send_skb_to_peer+0x5f/0x210 drivers/net/wireguard/socket.c:173 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&dev->spinlock); lock(&dev->spinlock); *** DEADLOCK *** 10 locks held by kworker/1:4/23396: #0: ffff88802c058d48 ((wq_completion)wg-crypt-wg0#24){+.+.}-{0:0}, at: process_one_work+0x1310/0x19a0 kernel/workqueue.c:3251 #1: ffffc90007867d08 ((work_completion)(&peer->transmit_packet_work)){+.+.}-{0:0}, at: process_one_work+0x988/0x19a0 kernel/workqueue.c:3252 #2: ffff8880598f9f30 (&peer->endpoint_lock){++-.}-{3:3}, at: wg_socket_send_skb_to_peer+0x5f/0x210 drivers/net/wireguard/socket.c:173 #3: ffffffff8e7e78c0 (rcu_read_lock_bh){....}-{1:3}, at: local_bh_disable include/linux/bottom_half.h:20 [inline] #3: ffffffff8e7e78c0 (rcu_read_lock_bh){....}-{1:3}, at: rcu_read_lock_bh include/linux/rcupdate.h:903 [inline] #3: ffffffff8e7e78c0 (rcu_read_lock_bh){....}-{1:3}, at: send4+0x222/0x1130 drivers/net/wireguard/socket.c:38 #4: ffffffff8e7e7920 (rcu_read_lock){....}-{1:3}, at: rcu_lock_acquire include/linux/rcupdate.h:312 [inline] #4: ffffffff8e7e7920 (rcu_read_lock){....}-{1:3}, at: rcu_read_lock include/linux/rcupdate.h:850 [inline] #4: ffffffff8e7e7920 (rcu_read_lock){....}-{1:3}, at: ip_output+0xb3/0xc10 net/ipv4/ip_output.c:433 #5: ffffffff8e7e7920 (rcu_read_lock){....}-{1:3}, at: rcu_lock_acquire include/linux/rcupdate.h:312 [inline] #5: ffffffff8e7e7920 (rcu_read_lock){....}-{1:3}, at: rcu_read_lock include/linux/rcupdate.h:850 [inline] #5: ffffffff8e7e7920 (rcu_read_lock){....}-{1:3}, at: ip_finish_output2+0x356/0x24d0 net/ipv4/ip_output.c:230 #6: ffffffff8e7e78c0 (rcu_read_lock_bh){....}-{1:3}, at: local_bh_disable include/linux/bottom_half.h:20 [inline] #6: ffffffff8e7e78c0 (rcu_read_lock_bh){....}-{1:3}, at: rcu_read_lock_bh include/linux/rcupdate.h:903 [inline] #6: ffffffff8e7e78c0 (rcu_read_lock_bh){....}-{1:3}, at: __dev_queue_xmit+0x274/0x4800 net/core/dev.c:4773 #7: ffff88807f0ec170 (&sch->root_lock_key#114){+.-.}-{3:3}, at: spin_lock include/linux/spinlock.h:341 [inline] #7: ffff88807f0ec170 (&sch->root_lock_key#114){+.-.}-{3:3}, at: __dev_xmit_skb net/core/dev.c:4236 [inline] #7: ffff88807f0ec170 (&sch->root_lock_key#114){+.-.}-{3:3}, at: __dev_queue_xmit+0x25d2/0x4800 net/core/dev.c:4814 #8: ffffffff8e7d3e80 (console_lock){+.+.}-{0:0}, at: _printk+0xcf/0x110 kernel/printk/printk.c:2504 #9: ffffffff8e7d3ef8 (console_srcu){....}-{0:0}, at: rcu_try_lock_acquire include/linux/rcupdate.h:317 [inline] #9: ffffffff8e7d3ef8 (console_srcu){....}-{0:0}, at: srcu_read_lock_nmisafe include/linux/srcu.h:428 [inline] #9: ffffffff8e7d3ef8 (console_srcu){....}-{0:0}, at: console_srcu_read_lock kernel/printk/printk.c:291 [inline] #9: ffffffff8e7d3ef8 (console_srcu){....}-{0:0}, at: console_flush_one_record+0xfd/0xe50 kernel/printk/printk.c:3246 stack backtrace: CPU: 1 UID: 0 PID: 23396 Comm: kworker/1:4 Tainted: G L syzkaller #0 PREEMPT(full) Tainted: [L]=SOFTLOCKUP Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/12/2026 Workqueue: wg-crypt-wg0 wg_packet_tx_worker Call Trace: __dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0x100/0x190 lib/dump_stack.c:120 print_usage_bug.part.0+0x257/0x340 kernel/locking/lockdep.c:4042 print_usage_bug kernel/locking/lockdep.c:4010 [inline] valid_state kernel/locking/lockdep.c:4056 [inline] mark_lock_irq kernel/locking/lockdep.c:4267 [inline] mark_lock+0x74a/0xa20 kernel/locking/lockdep.c:4753 mark_usage kernel/locking/lockdep.c:4639 [inline] __lock_acquire+0x10ff/0x2630 kernel/locking/lockdep.c:5191 lock_acquire kernel/locking/lockdep.c:5868 [inline] lock_acquire+0x1cf/0x380 kernel/locking/lockdep.c:5825 __raw_spin_lock include/linux/spinlock_api_smp.h:158 [inline] _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:154 spin_lock include/linux/spinlock.h:341 [inline] das16m1_interrupt+0x68/0x120 drivers/comedi/drivers/das16m1.c:460 __handle_irq_event_percpu+0x232/0x8e0 kernel/irq/handle.c:209 handle_irq_event_percpu kernel/irq/handle.c:246 [inline] handle_irq_event+0xab/0x1e0 kernel/irq/handle.c:263 handle_edge_irq+0x375/0x970 kernel/irq/chip.c:855 generic_handle_irq_desc include/linux/irqdesc.h:186 [inline] handle_irq arch/x86/kernel/irq.c:262 [inline] call_irq_handler arch/x86/kernel/irq.c:318 [inline] __common_interrupt+0xd8/0x2f0 arch/x86/kernel/irq.c:333 common_interrupt+0xb9/0xe0 arch/x86/kernel/irq.c:326 asm_common_interrupt+0x26/0x40 arch/x86/include/asm/idtentry.h:688 RIP: 0010:console_flush_one_record+0xac3/0xe50 kernel/printk/printk.c:3270 Code: 00 e8 41 4e 29 00 9c 5d 81 e5 00 02 00 00 31 ff 48 89 ee e8 ef 49 21 00 48 85 ed 0f 85 d7 01 00 00 e8 01 4f 21 00 fb 4c 89 e8 <48> c1 e8 03 42 80 3c 38 00 0f 85 64 03 00 00 48 8b 0c 24 48 8b 6b RSP: 0018:ffffc900078670c8 EFLAGS: 00000293 RAX: ffffffff8f515e18 RBX: ffffffff8f515dc0 RCX: ffffffff81e78791 RDX: ffff888029c58000 RSI: ffffffff81e7879f RDI: ffff888029c58000 RBP: 0000000000000000 R08: 0000000000000007 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: 000000000000751b R13: ffffffff8f515e18 R14: ffffc90007867148 R15: dffffc0000000000 console_flush_all kernel/printk/printk.c:3343 [inline] __console_flush_and_unlock kernel/printk/printk.c:3373 [inline] console_unlock+0x103/0x260 kernel/printk/printk.c:3413 vprintk_emit+0x407/0x6b0 kernel/printk/printk.c:2479 _printk+0xcf/0x110 kernel/printk/printk.c:2504 gred_dequeue.cold+0x40/0x4f net/sched/sch_gred.c:273 dequeue_skb net/sched/sch_generic.c:297 [inline] qdisc_restart net/sched/sch_generic.c:402 [inline] __qdisc_run+0x1be/0x1b10 net/sched/sch_generic.c:420 qdisc_run include/net/pkt_sched.h:120 [inline] qdisc_run include/net/pkt_sched.h:117 [inline] __dev_xmit_skb net/core/dev.c:4281 [inline] __dev_queue_xmit+0x2caf/0x4800 net/core/dev.c:4814 dev_queue_xmit include/linux/netdevice.h:3385 [inline] neigh_hh_output include/net/neighbour.h:540 [inline] neigh_output include/net/neighbour.h:554 [inline] ip_finish_output2+0xf4a/0x24d0 net/ipv4/ip_output.c:237 __ip_finish_output.part.0+0x444/0x6f0 net/ipv4/ip_output.c:315 __ip_finish_output net/ipv4/ip_output.c:303 [inline] ip_finish_output net/ipv4/ip_output.c:325 [inline] NF_HOOK_COND include/linux/netfilter.h:307 [inline] ip_output+0x39b/0xc10 net/ipv4/ip_output.c:438 dst_output include/net/dst.h:470 [inline] ip_local_out+0x193/0x1f0 net/ipv4/ip_output.c:131 iptunnel_xmit+0x722/0xcb0 net/ipv4/ip_tunnel_core.c:97 send4+0x414/0x1130 drivers/net/wireguard/socket.c:85 wg_socket_send_skb_to_peer+0x18f/0x210 drivers/net/wireguard/socket.c:175 wg_packet_create_data_done drivers/net/wireguard/send.c:251 [inline] wg_packet_tx_worker+0x199/0x7f0 drivers/net/wireguard/send.c:276 process_one_work+0xa23/0x19a0 kernel/workqueue.c:3276 process_scheduled_works kernel/workqueue.c:3359 [inline] worker_thread+0x5ef/0xe50 kernel/workqueue.c:3440 kthread+0x370/0x450 kernel/kthread.c:436 ret_from_fork+0x754/0xd80 arch/x86/kernel/process.c:158 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 comedi comedi3: fifo overflow ---------------- Code disassembly (best guess): 0: 00 e8 add %ch,%al 2: 41 rex.B 3: 4e 29 00 rex.WRX sub %r8,(%rax) 6: 9c pushf 7: 5d pop %rbp 8: 81 e5 00 02 00 00 and $0x200,%ebp e: 31 ff xor %edi,%edi 10: 48 89 ee mov %rbp,%rsi 13: e8 ef 49 21 00 call 0x214a07 18: 48 85 ed test %rbp,%rbp 1b: 0f 85 d7 01 00 00 jne 0x1f8 21: e8 01 4f 21 00 call 0x214f27 26: fb sti 27: 4c 89 e8 mov %r13,%rax * 2a: 48 c1 e8 03 shr $0x3,%rax <-- trapping instruction 2e: 42 80 3c 38 00 cmpb $0x0,(%rax,%r15,1) 33: 0f 85 64 03 00 00 jne 0x39d 39: 48 8b 0c 24 mov (%rsp),%rcx 3d: 48 rex.W 3e: 8b .byte 0x8b 3f: 6b .byte 0x6b