================================ WARNING: inconsistent lock state syzkaller #0 Tainted: G L -------------------------------- inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage. swapper/0/0 [HC1[1]:SC0[0]:HE0:SE1] takes: ffff888031201868 (&dev->spinlock){?...}-{3:3}, at: spin_lock include/linux/spinlock.h:341 [inline] ffff888031201868 (&dev->spinlock){?...}-{3:3}, at: das16m1_interrupt+0x5e/0x180 drivers/comedi/drivers/das16m1.c:460 {HARDIRQ-ON-W} state was registered at: lock_acquire+0xf0/0x2e0 kernel/locking/lockdep.c:5868 __raw_spin_lock_bh include/linux/spinlock_api_smp.h:150 [inline] _raw_spin_lock_bh+0x36/0x50 kernel/locking/spinlock.c:178 spin_lock_bh include/linux/spinlock.h:347 [inline] waveform_ao_cancel+0x8d/0x120 drivers/comedi/drivers/comedi_test.c:628 do_cancel drivers/comedi/comedi_fops.c:818 [inline] comedi_close+0x27e/0x5e0 drivers/comedi/comedi_fops.c:3036 __fput+0x44f/0xa70 fs/file_table.c:469 task_work_run+0x1d9/0x270 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+0xed/0x480 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+0x32d/0xf80 arch/x86/entry/syscall_64.c:100 entry_SYSCALL_64_after_hwframe+0x77/0x7f irq event stamp: 24460666 hardirqs last enabled at (24460665): [] tick_nohz_idle_enter+0x381/0x4d0 kernel/time/tick-sched.c:1296 hardirqs last disabled at (24460666): [] common_interrupt+0x13/0xe0 arch/x86/kernel/irq.c:326 softirqs last enabled at (24460656): [] __do_softirq kernel/softirq.c:660 [inline] softirqs last enabled at (24460656): [] invoke_softirq kernel/softirq.c:496 [inline] softirqs last enabled at (24460656): [] __irq_exit_rcu+0x5f/0x150 kernel/softirq.c:727 softirqs last disabled at (24460637): [] __do_softirq kernel/softirq.c:660 [inline] softirqs last disabled at (24460637): [] invoke_softirq kernel/softirq.c:496 [inline] softirqs last disabled at (24460637): [] __irq_exit_rcu+0x5f/0x150 kernel/softirq.c:727 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&dev->spinlock); lock(&dev->spinlock); *** DEADLOCK *** no locks held by swapper/0/0. stack backtrace: CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Tainted: G L syzkaller #0 PREEMPT(full) Tainted: [L]=SOFTLOCKUP Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/12/2026 Call Trace: dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120 print_usage_bug+0x28b/0x2e0 kernel/locking/lockdep.c:4042 valid_state kernel/locking/lockdep.c:4056 [inline] mark_lock_irq+0x410/0x420 kernel/locking/lockdep.c:-1 mark_lock+0x115/0x190 kernel/locking/lockdep.c:4753 mark_usage kernel/locking/lockdep.c:4639 [inline] __lock_acquire+0x661/0x2cf0 kernel/locking/lockdep.c:5191 lock_acquire+0xf0/0x2e0 kernel/locking/lockdep.c:5868 __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+0x5e/0x180 drivers/comedi/drivers/das16m1.c:460 __handle_irq_event_percpu+0x227/0x9e0 kernel/irq/handle.c:209 handle_irq_event_percpu kernel/irq/handle.c:246 [inline] handle_irq_event+0x8b/0x1e0 kernel/irq/handle.c:263 handle_edge_irq+0x23b/0xa10 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:-1 [inline] __common_interrupt+0x141/0x1f0 arch/x86/kernel/irq.c:333 common_interrupt+0xb6/0xe0 arch/x86/kernel/irq.c:326 asm_common_interrupt+0x26/0x40 arch/x86/include/asm/idtentry.h:688 RIP: 0010:tick_nohz_idle_enter+0x386/0x4d0 kernel/time/tick-sched.c:1297 Code: 10 48 8b 74 24 08 e8 b9 e8 ea ff 43 0f b6 04 2f 84 c0 0f 85 39 01 00 00 41 ff 06 e8 04 0d e7 ff e8 cf b2 16 00 fb 48 83 c4 20 <5b> 41 5c 41 5d 41 5e 41 5f 5d e9 9b a3 06 0a cc e8 c5 cd 0e 00 90 RSP: 0018:ffffffff8e607da8 EFLAGS: 00000282 RAX: 0000000001753d79 RBX: ffff8880b8428bc8 RCX: 0000000080000001 RDX: 0000000000000000 RSI: ffffffff8e0150a1 RDI: ffffffff8c2a0b00 RBP: 0000000000000000 R08: ffffffff9033cab7 R09: 1ffffffff2067956 R10: dffffc0000000000 R11: fffffbfff2067957 R12: dffffc0000000000 R13: dffffc0000000000 R14: ffff8880b8428c48 R15: 1ffff11017085189 do_idle+0x8d/0x500 kernel/sched/idle.c:278 cpu_startup_entry+0x43/0x60 kernel/sched/idle.c:430 rest_init+0x2de/0x300 init/main.c:760 start_kernel+0x385/0x3d0 init/main.c:1210 x86_64_start_reservations+0x24/0x30 arch/x86/kernel/head64.c:310 x86_64_start_kernel+0x143/0x1c0 arch/x86/kernel/head64.c:291 common_startup_64+0x13e/0x147 comedi comedi3: fifo overflow ---------------- Code disassembly (best guess): 0: 10 48 8b adc %cl,-0x75(%rax) 3: 74 24 je 0x29 5: 08 e8 or %ch,%al 7: b9 e8 ea ff 43 mov $0x43ffeae8,%ecx c: 0f b6 04 2f movzbl (%rdi,%rbp,1),%eax 10: 84 c0 test %al,%al 12: 0f 85 39 01 00 00 jne 0x151 18: 41 ff 06 incl (%r14) 1b: e8 04 0d e7 ff call 0xffe70d24 20: e8 cf b2 16 00 call 0x16b2f4 25: fb sti 26: 48 83 c4 20 add $0x20,%rsp * 2a: 5b pop %rbx <-- trapping instruction 2b: 41 5c pop %r12 2d: 41 5d pop %r13 2f: 41 5e pop %r14 31: 41 5f pop %r15 33: 5d pop %rbp 34: e9 9b a3 06 0a jmp 0xa06a3d4 39: cc int3 3a: e8 c5 cd 0e 00 call 0xece04 3f: 90 nop