======================================================== WARNING: possible irq lock inversion dependency detected 6.16.0-syzkaller-11699-g7e161a991ea7 #0 Not tainted -------------------------------------------------------- kworker/0:5/5976 just changed the state of lock: ffff88802b4a9230 (&dev->event_lock#2){..-.}-{3:3}, at: class_spinlock_irqsave_constructor include/linux/spinlock.h:585 [inline] ffff88802b4a9230 (&dev->event_lock#2){..-.}-{3:3}, at: input_inject_event+0x9f/0x3b0 drivers/input/input.c:418 but this lock took another, SOFTIRQ-READ-unsafe lock in the past: (tasklist_lock){.+.+}-{3:3} and interrupts could create inverse lock ordering between them. other info that might help us debug this: Chain exists of: &dev->event_lock#2 --> &new->fa_lock --> tasklist_lock Possible interrupt unsafe locking scenario: CPU0 CPU1 ---- ---- lock(tasklist_lock); local_irq_disable(); lock(&dev->event_lock#2); lock(&new->fa_lock); lock(&dev->event_lock#2); *** DEADLOCK *** 4 locks held by kworker/0:5/5976: #0: ffff88801b878d48 ((wq_completion)events){+.+.}-{0:0}, at: process_one_work+0x12a2/0x1b70 kernel/workqueue.c:3211 #1: ffffc9000486fd10 (console_work){+.+.}-{0:0}, at: process_one_work+0x929/0x1b70 kernel/workqueue.c:3212 #2: ffffffff8e5aebe0 (console_lock){+.+.}-{0:0}, at: console_callback+0x62/0x4c0 drivers/tty/vt/vt.c:3202 #3: ffffffff8e5c1160 (rcu_read_lock){....}-{1:3}, at: rcu_lock_acquire include/linux/rcupdate.h:331 [inline] #3: ffffffff8e5c1160 (rcu_read_lock){....}-{1:3}, at: rcu_read_lock include/linux/rcupdate.h:841 [inline] #3: ffffffff8e5c1160 (rcu_read_lock){....}-{1:3}, at: led_trigger_event drivers/leds/led-triggers.c:418 [inline] #3: ffffffff8e5c1160 (rcu_read_lock){....}-{1:3}, at: led_trigger_event+0x61/0x270 drivers/leds/led-triggers.c:408 the shortest dependencies between 2nd lock and 1st lock: -> (tasklist_lock){.+.+}-{3:3} { HARDIRQ-ON-R at: lock_acquire kernel/locking/lockdep.c:5868 [inline] lock_acquire+0x179/0x350 kernel/locking/lockdep.c:5825 __raw_read_lock include/linux/rwlock_api_smp.h:150 [inline] _raw_read_lock+0x5f/0x70 kernel/locking/spinlock.c:228 __do_wait+0x105/0x890 kernel/exit.c:1662 do_wait+0x21e/0x5a0 kernel/exit.c:1706 kernel_wait+0x9f/0x160 kernel/exit.c:1882 call_usermodehelper_exec_sync kernel/umh.c:136 [inline] call_usermodehelper_exec_work+0xf1/0x170 kernel/umh.c:163 process_one_work+0x9cf/0x1b70 kernel/workqueue.c:3236 process_scheduled_works kernel/workqueue.c:3319 [inline] worker_thread+0x6c8/0xf10 kernel/workqueue.c:3400 kthread+0x3c2/0x780 kernel/kthread.c:463 ret_from_fork+0x5d7/0x6f0 arch/x86/kernel/process.c:148 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 SOFTIRQ-ON-R at: lock_acquire kernel/locking/lockdep.c:5868 [inline] lock_acquire+0x179/0x350 kernel/locking/lockdep.c:5825 __raw_read_lock include/linux/rwlock_api_smp.h:150 [inline] _raw_read_lock+0x5f/0x70 kernel/locking/spinlock.c:228 __do_wait+0x105/0x890 kernel/exit.c:1662 do_wait+0x21e/0x5a0 kernel/exit.c:1706 kernel_wait+0x9f/0x160 kernel/exit.c:1882 call_usermodehelper_exec_sync kernel/umh.c:136 [inline] call_usermodehelper_exec_work+0xf1/0x170 kernel/umh.c:163 process_one_work+0x9cf/0x1b70 kernel/workqueue.c:3236 process_scheduled_works kernel/workqueue.c:3319 [inline] worker_thread+0x6c8/0xf10 kernel/workqueue.c:3400 kthread+0x3c2/0x780 kernel/kthread.c:463 ret_from_fork+0x5d7/0x6f0 arch/x86/kernel/process.c:148 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 INITIAL USE at: lock_acquire kernel/locking/lockdep.c:5868 [inline] lock_acquire+0x179/0x350 kernel/locking/lockdep.c:5825 __raw_write_lock_irq include/linux/rwlock_api_smp.h:195 [inline] _raw_write_lock_irq+0x36/0x50 kernel/locking/spinlock.c:326 copy_process+0x4caf/0x7690 kernel/fork.c:2318 kernel_clone+0xfc/0x930 kernel/fork.c:2602 user_mode_thread+0xc7/0x110 kernel/fork.c:2680 rest_init+0x23/0x2b0 init/main.c:709 start_kernel+0x3ee/0x4d0 init/main.c:1097 x86_64_start_reservations+0x18/0x30 arch/x86/kernel/head64.c:307 x86_64_start_kernel+0x130/0x190 arch/x86/kernel/head64.c:288 common_startup_64+0x13e/0x148 INITIAL READ USE at: lock_acquire kernel/locking/lockdep.c:5868 [inline] lock_acquire+0x179/0x350 kernel/locking/lockdep.c:5825 __raw_read_lock include/linux/rwlock_api_smp.h:150 [inline] _raw_read_lock+0x5f/0x70 kernel/locking/spinlock.c:228 __do_wait+0x105/0x890 kernel/exit.c:1662 do_wait+0x21e/0x5a0 kernel/exit.c:1706 kernel_wait+0x9f/0x160 kernel/exit.c:1882 call_usermodehelper_exec_sync kernel/umh.c:136 [inline] call_usermodehelper_exec_work+0xf1/0x170 kernel/umh.c:163 process_one_work+0x9cf/0x1b70 kernel/workqueue.c:3236 process_scheduled_works kernel/workqueue.c:3319 [inline] worker_thread+0x6c8/0xf10 kernel/workqueue.c:3400 kthread+0x3c2/0x780 kernel/kthread.c:463 ret_from_fork+0x5d7/0x6f0 arch/x86/kernel/process.c:148 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 } ... key at: [] tasklist_lock+0x18/0x40 ... acquired at: __raw_read_lock include/linux/rwlock_api_smp.h:150 [inline] _raw_read_lock+0x5f/0x70 kernel/locking/spinlock.c:228 send_sigurg+0xed/0xc80 fs/fcntl.c:967 sk_send_sigurg+0x76/0x360 net/core/sock.c:3622 queue_oob net/unix/af_unix.c:2380 [inline] unix_stream_sendmsg+0xfa5/0x1340 net/unix/af_unix.c:2516 sock_sendmsg_nosec net/socket.c:714 [inline] __sock_sendmsg net/socket.c:729 [inline] ____sys_sendmsg+0xa95/0xc70 net/socket.c:2614 ___sys_sendmsg+0x134/0x1d0 net/socket.c:2668 __sys_sendmmsg+0x200/0x420 net/socket.c:2757 __do_sys_sendmmsg net/socket.c:2784 [inline] __se_sys_sendmmsg net/socket.c:2781 [inline] __x64_sys_sendmmsg+0x9c/0x100 net/socket.c:2781 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xcd/0x4c0 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f -> (&f_owner->lock){...-}-{3:3} { IN-SOFTIRQ-R at: lock_acquire kernel/locking/lockdep.c:5868 [inline] lock_acquire+0x179/0x350 kernel/locking/lockdep.c:5825 __raw_read_lock_irqsave include/linux/rwlock_api_smp.h:160 [inline] _raw_read_lock_irqsave+0x46/0x90 kernel/locking/spinlock.c:236 send_sigio+0x31/0x3e0 fs/fcntl.c:907 kill_fasync_rcu fs/fcntl.c:1133 [inline] kill_fasync fs/fcntl.c:1148 [inline] kill_fasync+0x214/0x510 fs/fcntl.c:1141 tun_net_xmit+0x1301/0x18d0 drivers/net/tun.c:1074 __netdev_start_xmit include/linux/netdevice.h:5219 [inline] netdev_start_xmit include/linux/netdevice.h:5228 [inline] xmit_one net/core/dev.c:3827 [inline] dev_hard_start_xmit+0x94/0x740 net/core/dev.c:3843 sch_direct_xmit+0x1b2/0xcf0 net/sched/sch_generic.c:344 __dev_xmit_skb net/core/dev.c:4102 [inline] __dev_queue_xmit+0x144d/0x4490 net/core/dev.c:4679 dev_queue_xmit include/linux/netdevice.h:3358 [inline] tipc_l2_send_msg+0x30b/0x490 net/tipc/bearer.c:516 tipc_bearer_xmit_skb+0x1bd/0x430 net/tipc/bearer.c:575 tipc_disc_timeout+0x5b2/0x850 net/tipc/discover.c:338 call_timer_fn+0x197/0x620 kernel/time/timer.c:1747 expire_timers kernel/time/timer.c:1798 [inline] __run_timers+0x6ef/0x960 kernel/time/timer.c:2372 __run_timer_base kernel/time/timer.c:2384 [inline] __run_timer_base kernel/time/timer.c:2376 [inline] run_timer_base+0x114/0x190 kernel/time/timer.c:2393 run_timer_softirq+0x1a/0x40 kernel/time/timer.c:2403 handle_softirqs+0x219/0x8e0 kernel/softirq.c:579 __do_softirq kernel/softirq.c:613 [inline] invoke_softirq kernel/softirq.c:453 [inline] __irq_exit_rcu+0x109/0x170 kernel/softirq.c:680 irq_exit_rcu+0x9/0x30 kernel/softirq.c:696 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1050 [inline] sysvec_apic_timer_interrupt+0xa4/0xc0 arch/x86/kernel/apic/apic.c:1050 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 arch_atomic_read arch/x86/include/asm/atomic.h:23 [inline] raw_atomic_read include/linux/atomic/atomic-arch-fallback.h:457 [inline] rcu_is_watching_curr_cpu include/linux/context_tracking.h:128 [inline] rcu_is_watching+0x6d/0xc0 kernel/rcu/tree.c:751 rcu_read_unlock include/linux/rcupdate.h:869 [inline] class_rcu_destructor include/linux/rcupdate.h:1155 [inline] unwind_next_frame+0xa86/0x20a0 arch/x86/kernel/unwind_orc.c:479 __unwind_start+0x45f/0x7f0 arch/x86/kernel/unwind_orc.c:758 unwind_start arch/x86/include/asm/unwind.h:64 [inline] arch_stack_walk+0x73/0x100 arch/x86/kernel/stacktrace.c:24 stack_trace_save+0x8e/0xc0 kernel/stacktrace.c:122 save_stack+0x160/0x1f0 mm/page_owner.c:156 __reset_page_owner+0x84/0x1a0 mm/page_owner.c:308 reset_page_owner include/linux/page_owner.h:25 [inline] free_pages_prepare mm/page_alloc.c:1395 [inline] __free_frozen_pages+0x7d5/0x10f0 mm/page_alloc.c:2895 __folio_put+0x329/0x450 mm/swap.c:112 folio_put_refs include/linux/mm.h:1378 [inline] collapse_file+0x3018/0x3180 mm/khugepaged.c:2214 hpage_collapse_scan_file+0x102e/0x19d0 mm/khugepaged.c:2357 madvise_collapse+0x3ed/0xaa0 mm/khugepaged.c:2789 madvise_vma_behavior+0x154d/0x2c50 mm/madvise.c:1289 madvise_walk_vmas+0x31f/0x9c0 mm/madvise.c:1600 madvise_do_behavior+0x1e2/0x530 mm/madvise.c:1816 do_madvise+0x176/0x240 mm/madvise.c:1909 __do_sys_madvise mm/madvise.c:1918 [inline] __se_sys_madvise mm/madvise.c:1916 [inline] __x64_sys_madvise+0xa9/0x110 mm/madvise.c:1916 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xcd/0x4c0 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f INITIAL USE at: lock_acquire kernel/locking/lockdep.c:5868 [inline] lock_acquire+0x179/0x350 kernel/locking/lockdep.c:5825 __raw_write_lock_irq include/linux/rwlock_api_smp.h:195 [inline] _raw_write_lock_irq+0x36/0x50 kernel/locking/spinlock.c:326 __f_setown+0x61/0x3c0 fs/fcntl.c:136 f_setown_ex fs/fcntl.c:254 [inline] do_fcntl+0x1098/0x15a0 fs/fcntl.c:521 __do_sys_fcntl fs/fcntl.c:591 [inline] __se_sys_fcntl fs/fcntl.c:576 [inline] __x64_sys_fcntl+0x163/0x200 fs/fcntl.c:576 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xcd/0x4c0 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f INITIAL READ USE at: lock_acquire kernel/locking/lockdep.c:5868 [inline] lock_acquire+0x179/0x350 kernel/locking/lockdep.c:5825 __raw_read_lock_irqsave include/linux/rwlock_api_smp.h:160 [inline] _raw_read_lock_irqsave+0x74/0x90 kernel/locking/spinlock.c:236 send_sigurg+0x5f/0xc80 fs/fcntl.c:951 sk_send_sigurg+0x76/0x360 net/core/sock.c:3622 queue_oob net/unix/af_unix.c:2380 [inline] unix_stream_sendmsg+0xfa5/0x1340 net/unix/af_unix.c:2516 sock_sendmsg_nosec net/socket.c:714 [inline] __sock_sendmsg net/socket.c:729 [inline] ____sys_sendmsg+0xa95/0xc70 net/socket.c:2614 ___sys_sendmsg+0x134/0x1d0 net/socket.c:2668 __sys_sendmmsg+0x200/0x420 net/socket.c:2757 __do_sys_sendmmsg net/socket.c:2784 [inline] __se_sys_sendmmsg net/socket.c:2781 [inline] __x64_sys_sendmmsg+0x9c/0x100 net/socket.c:2781 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xcd/0x4c0 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f } ... key at: [] __key.1+0x0/0x40 ... acquired at: __raw_read_lock_irqsave include/linux/rwlock_api_smp.h:160 [inline] _raw_read_lock_irqsave+0x74/0x90 kernel/locking/spinlock.c:236 send_sigio+0x31/0x3e0 fs/fcntl.c:907 kill_fasync_rcu fs/fcntl.c:1133 [inline] kill_fasync fs/fcntl.c:1148 [inline] kill_fasync+0x214/0x510 fs/fcntl.c:1141 fsnotify_insert_event+0x3ad/0x4f0 fs/notify/notification.c:128 fsnotify_add_event include/linux/fsnotify_backend.h:734 [inline] inotify_handle_inode_event+0x4d0/0x6f0 fs/notify/inotify/inotify_fsnotify.c:126 inotify_ignored_and_remove_idr+0x28/0x70 fs/notify/inotify/inotify_user.c:526 fsnotify_free_mark+0xec/0x140 fs/notify/mark.c:589 fsnotify_destroy_mark fs/notify/mark.c:598 [inline] fsnotify_destroy_marks+0x24f/0x3c0 fs/notify/mark.c:952 fsnotify_inoderemove include/linux/fsnotify.h:309 [inline] dentry_unlink_inode+0x3cb/0x480 fs/dcache.c:462 d_delete fs/dcache.c:2475 [inline] d_delete+0x20e/0x280 fs/dcache.c:2462 d_delete_notify include/linux/fsnotify.h:375 [inline] vfs_rmdir fs/namei.c:4474 [inline] vfs_rmdir+0x369/0x690 fs/namei.c:4438 do_rmdir+0x2e8/0x3c0 fs/namei.c:4516 __do_sys_rmdir fs/namei.c:4535 [inline] __se_sys_rmdir fs/namei.c:4533 [inline] __x64_sys_rmdir+0xc5/0x110 fs/namei.c:4533 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xcd/0x4c0 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f -> (&new->fa_lock){...-}-{3:3} { IN-SOFTIRQ-R at: lock_acquire kernel/locking/lockdep.c:5868 [inline] lock_acquire+0x179/0x350 kernel/locking/lockdep.c:5825 __raw_read_lock_irqsave include/linux/rwlock_api_smp.h:160 [inline] _raw_read_lock_irqsave+0x46/0x90 kernel/locking/spinlock.c:236 kill_fasync_rcu fs/fcntl.c:1124 [inline] kill_fasync fs/fcntl.c:1148 [inline] kill_fasync+0x138/0x510 fs/fcntl.c:1141 tun_net_xmit+0x1301/0x18d0 drivers/net/tun.c:1074 __netdev_start_xmit include/linux/netdevice.h:5219 [inline] netdev_start_xmit include/linux/netdevice.h:5228 [inline] xmit_one net/core/dev.c:3827 [inline] dev_hard_start_xmit+0x94/0x740 net/core/dev.c:3843 sch_direct_xmit+0x1b2/0xcf0 net/sched/sch_generic.c:344 __dev_xmit_skb net/core/dev.c:4102 [inline] __dev_queue_xmit+0x144d/0x4490 net/core/dev.c:4679 dev_queue_xmit include/linux/netdevice.h:3358 [inline] tipc_l2_send_msg+0x30b/0x490 net/tipc/bearer.c:516 tipc_bearer_xmit_skb+0x1bd/0x430 net/tipc/bearer.c:575 tipc_disc_timeout+0x5b2/0x850 net/tipc/discover.c:338 call_timer_fn+0x197/0x620 kernel/time/timer.c:1747 expire_timers kernel/time/timer.c:1798 [inline] __run_timers+0x6ef/0x960 kernel/time/timer.c:2372 __run_timer_base kernel/time/timer.c:2384 [inline] __run_timer_base kernel/time/timer.c:2376 [inline] run_timer_base+0x114/0x190 kernel/time/timer.c:2393 run_timer_softirq+0x1a/0x40 kernel/time/timer.c:2403 handle_softirqs+0x219/0x8e0 kernel/softirq.c:579 __do_softirq kernel/softirq.c:613 [inline] invoke_softirq kernel/softirq.c:453 [inline] __irq_exit_rcu+0x109/0x170 kernel/softirq.c:680 irq_exit_rcu+0x9/0x30 kernel/softirq.c:696 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1050 [inline] sysvec_apic_timer_interrupt+0xa4/0xc0 arch/x86/kernel/apic/apic.c:1050 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 arch_atomic_read arch/x86/include/asm/atomic.h:23 [inline] raw_atomic_read include/linux/atomic/atomic-arch-fallback.h:457 [inline] rcu_is_watching_curr_cpu include/linux/context_tracking.h:128 [inline] rcu_is_watching+0x6d/0xc0 kernel/rcu/tree.c:751 rcu_read_unlock include/linux/rcupdate.h:869 [inline] class_rcu_destructor include/linux/rcupdate.h:1155 [inline] unwind_next_frame+0xa86/0x20a0 arch/x86/kernel/unwind_orc.c:479 __unwind_start+0x45f/0x7f0 arch/x86/kernel/unwind_orc.c:758 unwind_start arch/x86/include/asm/unwind.h:64 [inline] arch_stack_walk+0x73/0x100 arch/x86/kernel/stacktrace.c:24 stack_trace_save+0x8e/0xc0 kernel/stacktrace.c:122 save_stack+0x160/0x1f0 mm/page_owner.c:156 __reset_page_owner+0x84/0x1a0 mm/page_owner.c:308 reset_page_owner include/linux/page_owner.h:25 [inline] free_pages_prepare mm/page_alloc.c:1395 [inline] __free_frozen_pages+0x7d5/0x10f0 mm/page_alloc.c:2895 __folio_put+0x329/0x450 mm/swap.c:112 folio_put_refs include/linux/mm.h:1378 [inline] collapse_file+0x3018/0x3180 mm/khugepaged.c:2214 hpage_collapse_scan_file+0x102e/0x19d0 mm/khugepaged.c:2357 madvise_collapse+0x3ed/0xaa0 mm/khugepaged.c:2789 madvise_vma_behavior+0x154d/0x2c50 mm/madvise.c:1289 madvise_walk_vmas+0x31f/0x9c0 mm/madvise.c:1600 madvise_do_behavior+0x1e2/0x530 mm/madvise.c:1816 do_madvise+0x176/0x240 mm/madvise.c:1909 __do_sys_madvise mm/madvise.c:1918 [inline] __se_sys_madvise mm/madvise.c:1916 [inline] __x64_sys_madvise+0xa9/0x110 mm/madvise.c:1916 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xcd/0x4c0 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f INITIAL USE at: lock_acquire kernel/locking/lockdep.c:5868 [inline] lock_acquire+0x179/0x350 kernel/locking/lockdep.c:5825 __raw_write_lock_irq include/linux/rwlock_api_smp.h:195 [inline] _raw_write_lock_irq+0x36/0x50 kernel/locking/spinlock.c:326 fasync_remove_entry+0xb2/0x1e0 fs/fcntl.c:1001 fasync_helper+0xaf/0xd0 fs/fcntl.c:1104 pipe_fasync+0xc7/0x200 fs/pipe.c:756 __fput+0x968/0xb70 fs/file_table.c:465 task_work_run+0x14d/0x240 kernel/task_work.c:227 exit_task_work include/linux/task_work.h:40 [inline] do_exit+0x86f/0x2bf0 kernel/exit.c:961 do_group_exit+0xd3/0x2a0 kernel/exit.c:1102 get_signal+0x2673/0x26d0 kernel/signal.c:3034 arch_do_signal_or_restart+0x8f/0x7d0 arch/x86/kernel/signal.c:337 exit_to_user_mode_loop+0x84/0x110 kernel/entry/common.c:40 exit_to_user_mode_prepare include/linux/irq-entry-common.h:225 [inline] syscall_exit_to_user_mode_work include/linux/entry-common.h:175 [inline] syscall_exit_to_user_mode include/linux/entry-common.h:210 [inline] do_syscall_64+0x3f6/0x4c0 arch/x86/entry/syscall_64.c:100 entry_SYSCALL_64_after_hwframe+0x77/0x7f INITIAL READ USE at: lock_acquire kernel/locking/lockdep.c:5868 [inline] lock_acquire+0x179/0x350 kernel/locking/lockdep.c:5825 __raw_read_lock_irqsave include/linux/rwlock_api_smp.h:160 [inline] _raw_read_lock_irqsave+0x74/0x90 kernel/locking/spinlock.c:236 kill_fasync_rcu fs/fcntl.c:1124 [inline] kill_fasync fs/fcntl.c:1148 [inline] kill_fasync+0x138/0x510 fs/fcntl.c:1141 mousedev_notify_readers+0x6d8/0xa30 drivers/input/mousedev.c:309 mousedev_event+0x84e/0x1490 drivers/input/mousedev.c:394 input_handle_events_default+0x119/0x1b0 drivers/input/input.c:2575 input_pass_values+0x74e/0x880 drivers/input/input.c:127 input_event_dispose drivers/input/input.c:341 [inline] input_handle_event+0xf00/0x14d0 drivers/input/input.c:369 input_inject_event+0x1e8/0x3b0 drivers/input/input.c:423 evdev_write+0x457/0x750 drivers/input/evdev.c:528 vfs_write+0x29d/0x1150 fs/read_write.c:684 ksys_write+0x1f8/0x250 fs/read_write.c:738 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xcd/0x4c0 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f } ... key at: [] __key.0+0x0/0x40 ... acquired at: __raw_read_lock_irqsave include/linux/rwlock_api_smp.h:160 [inline] _raw_read_lock_irqsave+0x74/0x90 kernel/locking/spinlock.c:236 kill_fasync_rcu fs/fcntl.c:1124 [inline] kill_fasync fs/fcntl.c:1148 [inline] kill_fasync+0x138/0x510 fs/fcntl.c:1141 mousedev_notify_readers+0x6d8/0xa30 drivers/input/mousedev.c:309 mousedev_event+0x84e/0x1490 drivers/input/mousedev.c:394 input_handle_events_default+0x119/0x1b0 drivers/input/input.c:2575 input_pass_values+0x74e/0x880 drivers/input/input.c:127 input_event_dispose drivers/input/input.c:341 [inline] input_handle_event+0xf00/0x14d0 drivers/input/input.c:369 input_inject_event+0x1e8/0x3b0 drivers/input/input.c:423 evdev_write+0x457/0x750 drivers/input/evdev.c:528 vfs_write+0x29d/0x1150 fs/read_write.c:684 ksys_write+0x1f8/0x250 fs/read_write.c:738 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xcd/0x4c0 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f -> (&dev->event_lock#2){..-.}-{3:3} { IN-SOFTIRQ-W at: lock_acquire kernel/locking/lockdep.c:5868 [inline] lock_acquire+0x179/0x350 kernel/locking/lockdep.c:5825 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0x3a/0x60 kernel/locking/spinlock.c:162 class_spinlock_irqsave_constructor include/linux/spinlock.h:585 [inline] input_inject_event+0x9f/0x3b0 drivers/input/input.c:418 __led_set_brightness drivers/leds/led-core.c:52 [inline] led_set_brightness_nopm drivers/leds/led-core.c:335 [inline] led_set_brightness_nosleep drivers/leds/led-core.c:369 [inline] led_set_brightness+0x217/0x290 drivers/leds/led-core.c:328 led_trigger_event drivers/leds/led-triggers.c:420 [inline] led_trigger_event+0xda/0x270 drivers/leds/led-triggers.c:408 kbd_propagate_led_state drivers/tty/vt/keyboard.c:1073 [inline] kbd_bh+0x21b/0x300 drivers/tty/vt/keyboard.c:1262 tasklet_action_common+0x281/0x400 kernel/softirq.c:829 handle_softirqs+0x219/0x8e0 kernel/softirq.c:579 __do_softirq kernel/softirq.c:613 [inline] invoke_softirq kernel/softirq.c:453 [inline] __irq_exit_rcu+0x109/0x170 kernel/softirq.c:680 irq_exit_rcu+0x9/0x30 kernel/softirq.c:696 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1050 [inline] sysvec_apic_timer_interrupt+0xa4/0xc0 arch/x86/kernel/apic/apic.c:1050 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 preempt_schedule_irq+0x4c/0x90 kernel/sched/core.c:7288 irqentry_exit+0x36/0x90 kernel/entry/common.c:197 asm_sysvec_reschedule_ipi+0x1a/0x20 arch/x86/include/asm/idtentry.h:707 __tasklet_schedule_common+0x10d/0x190 kernel/softirq.c:780 tasklet_schedule include/linux/interrupt.h:758 [inline] set_leds drivers/tty/vt/keyboard.c:393 [inline] vt_set_leds_compute_shiftstate+0x76/0x80 drivers/tty/vt/keyboard.c:435 redraw_screen+0x542/0x760 drivers/tty/vt/vt.c:983 complete_change_console+0x110/0x600 drivers/tty/vt/vt_ioctl.c:1154 change_console+0x1ac/0x560 drivers/tty/vt/vt_ioctl.c:1279 console_callback+0x1a1/0x4c0 drivers/tty/vt/vt.c:3208 process_one_work+0x9cf/0x1b70 kernel/workqueue.c:3236 process_scheduled_works kernel/workqueue.c:3319 [inline] worker_thread+0x6c8/0xf10 kernel/workqueue.c:3400 kthread+0x3c2/0x780 kernel/kthread.c:463 ret_from_fork+0x5d7/0x6f0 arch/x86/kernel/process.c:148 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 INITIAL USE at: lock_acquire kernel/locking/lockdep.c:5868 [inline] lock_acquire+0x179/0x350 kernel/locking/lockdep.c:5825 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0x3a/0x60 kernel/locking/spinlock.c:162 class_spinlock_irqsave_constructor include/linux/spinlock.h:585 [inline] input_inject_event+0x9f/0x3b0 drivers/input/input.c:418 __led_set_brightness drivers/leds/led-core.c:52 [inline] led_set_brightness_nopm drivers/leds/led-core.c:335 [inline] led_set_brightness_nosleep drivers/leds/led-core.c:369 [inline] led_set_brightness+0x217/0x290 drivers/leds/led-core.c:328 kbd_led_trigger_activate+0xcb/0x110 drivers/tty/vt/keyboard.c:1029 led_trigger_set+0x59a/0xc50 drivers/leds/led-triggers.c:220 led_match_default_trigger drivers/leds/led-triggers.c:277 [inline] led_match_default_trigger drivers/leds/led-triggers.c:271 [inline] led_trigger_set_default drivers/leds/led-triggers.c:300 [inline] led_trigger_set_default+0x1e0/0x2e0 drivers/leds/led-triggers.c:284 led_classdev_register_ext+0x7b8/0xa10 drivers/leds/led-class.c:565 led_classdev_register include/linux/leds.h:274 [inline] input_leds_connect+0x552/0x8e0 drivers/input/input-leds.c:145 input_attach_handler.isra.0+0x184/0x260 drivers/input/input.c:993 input_register_device+0xab9/0x1180 drivers/input/input.c:2412 atkbd_connect+0x5f8/0xa40 drivers/input/keyboard/atkbd.c:1340 serio_connect_driver drivers/input/serio/serio.c:43 [inline] serio_driver_probe+0x7f/0xd0 drivers/input/serio/serio.c:747 call_driver_probe drivers/base/dd.c:581 [inline] really_probe+0x241/0xa90 drivers/base/dd.c:659 __driver_probe_device+0x1de/0x440 drivers/base/dd.c:801 driver_probe_device+0x4c/0x1b0 drivers/base/dd.c:831 __driver_attach+0x283/0x580 drivers/base/dd.c:1217 bus_for_each_dev+0x13e/0x1d0 drivers/base/bus.c:370 serio_attach_driver drivers/input/serio/serio.c:776 [inline] serio_handle_event+0x335/0xc30 drivers/input/serio/serio.c:213 process_one_work+0x9cf/0x1b70 kernel/workqueue.c:3236 process_scheduled_works kernel/workqueue.c:3319 [inline] worker_thread+0x6c8/0xf10 kernel/workqueue.c:3400 kthread+0x3c2/0x780 kernel/kthread.c:463 ret_from_fork+0x5d7/0x6f0 arch/x86/kernel/process.c:148 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 } ... key at: [] __key.7+0x0/0x40 ... acquired at: mark_usage kernel/locking/lockdep.c:4642 [inline] __lock_acquire+0x8b7/0x1ce0 kernel/locking/lockdep.c:5191 lock_acquire kernel/locking/lockdep.c:5868 [inline] lock_acquire+0x179/0x350 kernel/locking/lockdep.c:5825 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0x3a/0x60 kernel/locking/spinlock.c:162 class_spinlock_irqsave_constructor include/linux/spinlock.h:585 [inline] input_inject_event+0x9f/0x3b0 drivers/input/input.c:418 __led_set_brightness drivers/leds/led-core.c:52 [inline] led_set_brightness_nopm drivers/leds/led-core.c:335 [inline] led_set_brightness_nosleep drivers/leds/led-core.c:369 [inline] led_set_brightness+0x217/0x290 drivers/leds/led-core.c:328 led_trigger_event drivers/leds/led-triggers.c:420 [inline] led_trigger_event+0xda/0x270 drivers/leds/led-triggers.c:408 kbd_propagate_led_state drivers/tty/vt/keyboard.c:1073 [inline] kbd_bh+0x21b/0x300 drivers/tty/vt/keyboard.c:1262 tasklet_action_common+0x281/0x400 kernel/softirq.c:829 handle_softirqs+0x219/0x8e0 kernel/softirq.c:579 __do_softirq kernel/softirq.c:613 [inline] invoke_softirq kernel/softirq.c:453 [inline] __irq_exit_rcu+0x109/0x170 kernel/softirq.c:680 irq_exit_rcu+0x9/0x30 kernel/softirq.c:696 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1050 [inline] sysvec_apic_timer_interrupt+0xa4/0xc0 arch/x86/kernel/apic/apic.c:1050 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 preempt_schedule_irq+0x4c/0x90 kernel/sched/core.c:7288 irqentry_exit+0x36/0x90 kernel/entry/common.c:197 asm_sysvec_reschedule_ipi+0x1a/0x20 arch/x86/include/asm/idtentry.h:707 __tasklet_schedule_common+0x10d/0x190 kernel/softirq.c:780 tasklet_schedule include/linux/interrupt.h:758 [inline] set_leds drivers/tty/vt/keyboard.c:393 [inline] vt_set_leds_compute_shiftstate+0x76/0x80 drivers/tty/vt/keyboard.c:435 redraw_screen+0x542/0x760 drivers/tty/vt/vt.c:983 complete_change_console+0x110/0x600 drivers/tty/vt/vt_ioctl.c:1154 change_console+0x1ac/0x560 drivers/tty/vt/vt_ioctl.c:1279 console_callback+0x1a1/0x4c0 drivers/tty/vt/vt.c:3208 process_one_work+0x9cf/0x1b70 kernel/workqueue.c:3236 process_scheduled_works kernel/workqueue.c:3319 [inline] worker_thread+0x6c8/0xf10 kernel/workqueue.c:3400 kthread+0x3c2/0x780 kernel/kthread.c:463 ret_from_fork+0x5d7/0x6f0 arch/x86/kernel/process.c:148 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 stack backtrace: CPU: 0 UID: 0 PID: 5976 Comm: kworker/0:5 Not tainted 6.16.0-syzkaller-11699-g7e161a991ea7 #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/12/2025 Workqueue: events console_callback Call Trace: __dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0x116/0x1f0 lib/dump_stack.c:120 print_irq_inversion_bug.part.0+0x212/0x270 kernel/locking/lockdep.c:4125 print_irq_inversion_bug kernel/locking/lockdep.c:4076 [inline] check_usage_forwards kernel/locking/lockdep.c:4158 [inline] mark_lock_irq kernel/locking/lockdep.c:4294 [inline] mark_lock+0x2e5/0x610 kernel/locking/lockdep.c:4753 mark_usage kernel/locking/lockdep.c:4642 [inline] __lock_acquire+0x8b7/0x1ce0 kernel/locking/lockdep.c:5191 lock_acquire kernel/locking/lockdep.c:5868 [inline] lock_acquire+0x179/0x350 kernel/locking/lockdep.c:5825 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0x3a/0x60 kernel/locking/spinlock.c:162 class_spinlock_irqsave_constructor include/linux/spinlock.h:585 [inline] input_inject_event+0x9f/0x3b0 drivers/input/input.c:418 __led_set_brightness drivers/leds/led-core.c:52 [inline] led_set_brightness_nopm drivers/leds/led-core.c:335 [inline] led_set_brightness_nosleep drivers/leds/led-core.c:369 [inline] led_set_brightness+0x217/0x290 drivers/leds/led-core.c:328 led_trigger_event drivers/leds/led-triggers.c:420 [inline] led_trigger_event+0xda/0x270 drivers/leds/led-triggers.c:408 kbd_propagate_led_state drivers/tty/vt/keyboard.c:1073 [inline] kbd_bh+0x21b/0x300 drivers/tty/vt/keyboard.c:1262 tasklet_action_common+0x281/0x400 kernel/softirq.c:829 handle_softirqs+0x219/0x8e0 kernel/softirq.c:579 __do_softirq kernel/softirq.c:613 [inline] invoke_softirq kernel/softirq.c:453 [inline] __irq_exit_rcu+0x109/0x170 kernel/softirq.c:680 irq_exit_rcu+0x9/0x30 kernel/softirq.c:696 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1050 [inline] sysvec_apic_timer_interrupt+0xa4/0xc0 arch/x86/kernel/apic/apic.c:1050 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 RIP: 0010:preempt_schedule_irq+0x4c/0x90 kernel/sched/core.c:7288 Code: df 55 65 48 8b 2d 5c f9 41 08 53 48 89 eb 48 c1 eb 03 48 01 c3 bf 01 00 00 00 e8 6f e1 f4 f5 e8 ea d2 2f f6 fb bf 01 00 00 00 af 99 ff ff 9c 58 fa f6 c4 02 75 1e bf 01 00 00 00 e8 6d 6c f4 RSP: 0018:ffffc9000486f988 EFLAGS: 00000202 RAX: 00000000000ccadf RBX: ffffed1006bac910 RCX: 0000000000000006 RDX: 0000000000000000 RSI: ffffffff8de4d213 RDI: 0000000000000001 RBP: ffff888035d64880 R08: 0000000000000001 R09: 0000000000000001 R10: ffffffff90aaec97 R11: 0000000000000000 R12: 0000000000000000 R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000 irqentry_exit+0x36/0x90 kernel/entry/common.c:197 asm_sysvec_reschedule_ipi+0x1a/0x20 arch/x86/include/asm/idtentry.h:707 RIP: 0010:__tasklet_schedule_common+0x10d/0x190 kernel/softirq.c:780 Code: f6 c4 02 75 51 5b 5d 41 5c 41 5d 41 5e c3 cc cc cc cc e8 06 31 47 00 e9 23 ff ff ff e8 bc 32 47 00 9c 58 f6 c4 02 75 3b fb 5b <5d> 41 5c 41 5d 41 5e e9 c7 2d 19 0a 48 c7 c7 40 a4 ab 8b e8 ab 3d RSP: 0018:ffffc9000486fa50 EFLAGS: 00000246 RAX: 0000000000000006 RBX: ffff8880565b3000 RCX: 0000000000000006 RDX: 0000000000000000 RSI: ffffffff8de4d213 RDI: ffffffff8c160d00 RBP: ffffffff8f2d2a40 R08: 0000000000000001 R09: 0000000000000001 R10: ffffffff90aaec97 R11: 0000000000000000 R12: 0000000000000200 R13: 0000000000000006 R14: ffff8880b8423e60 R15: 0000000000000001 tasklet_schedule include/linux/interrupt.h:758 [inline] set_leds drivers/tty/vt/keyboard.c:393 [inline] vt_set_leds_compute_shiftstate+0x76/0x80 drivers/tty/vt/keyboard.c:435 redraw_screen+0x542/0x760 drivers/tty/vt/vt.c:983 complete_change_console+0x110/0x600 drivers/tty/vt/vt_ioctl.c:1154 change_console+0x1ac/0x560 drivers/tty/vt/vt_ioctl.c:1279 console_callback+0x1a1/0x4c0 drivers/tty/vt/vt.c:3208 process_one_work+0x9cf/0x1b70 kernel/workqueue.c:3236 process_scheduled_works kernel/workqueue.c:3319 [inline] worker_thread+0x6c8/0xf10 kernel/workqueue.c:3400 kthread+0x3c2/0x780 kernel/kthread.c:463 ret_from_fork+0x5d7/0x6f0 arch/x86/kernel/process.c:148 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 ---------------- Code disassembly (best guess): 0: df 55 65 fists 0x65(%rbp) 3: 48 8b 2d 5c f9 41 08 mov 0x841f95c(%rip),%rbp # 0x841f966 a: 53 push %rbx b: 48 89 eb mov %rbp,%rbx e: 48 c1 eb 03 shr $0x3,%rbx 12: 48 01 c3 add %rax,%rbx 15: bf 01 00 00 00 mov $0x1,%edi 1a: e8 6f e1 f4 f5 call 0xf5f4e18e 1f: e8 ea d2 2f f6 call 0xf62fd30e 24: fb sti 25: bf 01 00 00 00 mov $0x1,%edi * 2a: e8 af 99 ff ff call 0xffff99de <-- trapping instruction 2f: 9c pushf 30: 58 pop %rax 31: fa cli 32: f6 c4 02 test $0x2,%ah 35: 75 1e jne 0x55 37: bf 01 00 00 00 mov $0x1,%edi 3c: e8 .byte 0xe8 3d: 6d insl (%dx),%es:(%rdi) 3e: 6c insb (%dx),%es:(%rdi) 3f: f4 hlt