================================ WARNING: inconsistent lock state 6.11.0-next-20240924-syzkaller #0 Not tainted -------------------------------- inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage. kworker/u8:7/2508 [HC0[0]:SC1[1]:HE1:SE0] takes: ffff88807f8de1e0 (&pch->downl){+.?.}-{2:2}, at: spin_lock include/linux/spinlock.h:351 [inline] ffff88807f8de1e0 (&pch->downl){+.?.}-{2:2}, at: ppp_channel_bridge_input drivers/net/ppp/ppp_generic.c:2272 [inline] ffff88807f8de1e0 (&pch->downl){+.?.}-{2:2}, at: ppp_input+0x18b/0xa10 drivers/net/ppp/ppp_generic.c:2304 {SOFTIRQ-ON-W} state was registered at: lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5825 __raw_spin_lock include/linux/spinlock_api_smp.h:133 [inline] _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:154 spin_lock include/linux/spinlock.h:351 [inline] ppp_channel_bridge_input drivers/net/ppp/ppp_generic.c:2272 [inline] ppp_input+0x18b/0xa10 drivers/net/ppp/ppp_generic.c:2304 pppoe_rcv_core+0x117/0x310 drivers/net/ppp/pppoe.c:379 sk_backlog_rcv include/net/sock.h:1113 [inline] __release_sock+0x243/0x350 net/core/sock.c:3072 release_sock+0x61/0x1f0 net/core/sock.c:3626 pppoe_sendmsg+0xd5/0x750 drivers/net/ppp/pppoe.c:903 sock_sendmsg_nosec net/socket.c:730 [inline] __sock_sendmsg+0x221/0x270 net/socket.c:745 ____sys_sendmsg+0x52a/0x7e0 net/socket.c:2603 ___sys_sendmsg net/socket.c:2657 [inline] __sys_sendmmsg+0x3ab/0x730 net/socket.c:2743 __do_sys_sendmmsg net/socket.c:2772 [inline] __se_sys_sendmmsg net/socket.c:2769 [inline] __x64_sys_sendmmsg+0xa0/0xb0 net/socket.c:2769 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x77/0x7f irq event stamp: 355560 hardirqs last enabled at (355560): [] __local_bh_enable_ip+0x168/0x200 kernel/softirq.c:387 hardirqs last disabled at (355559): [] __local_bh_enable_ip+0x106/0x200 kernel/softirq.c:364 softirqs last enabled at (352030): [] __do_softirq kernel/softirq.c:588 [inline] softirqs last enabled at (352030): [] invoke_softirq kernel/softirq.c:428 [inline] softirqs last enabled at (352030): [] __irq_exit_rcu+0xf4/0x1c0 kernel/softirq.c:637 softirqs last disabled at (355553): [] __do_softirq kernel/softirq.c:588 [inline] softirqs last disabled at (355553): [] invoke_softirq kernel/softirq.c:428 [inline] softirqs last disabled at (355553): [] __irq_exit_rcu+0xf4/0x1c0 kernel/softirq.c:637 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&pch->downl); lock(&pch->downl); *** DEADLOCK *** 5 locks held by kworker/u8:7/2508: #0: ffff88801ac89148 ((wq_completion)events_unbound){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:3204 [inline] #0: ffff88801ac89148 ((wq_completion)events_unbound){+.+.}-{0:0}, at: process_scheduled_works+0x93b/0x1850 kernel/workqueue.c:3310 #1: ffffc900090b7d00 ((work_completion)(&buf->work)){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:3205 [inline] #1: ffffc900090b7d00 ((work_completion)(&buf->work)){+.+.}-{0:0}, at: process_scheduled_works+0x976/0x1850 kernel/workqueue.c:3310 #2: ffff88807f8da8b8 (&buf->lock){+.+.}-{3:3}, at: flush_to_ldisc+0x38/0x860 drivers/tty/tty_buffer.c:467 #3: ffff888024deb0a0 (&tty->ldisc_sem){++++}-{0:0}, at: tty_ldisc_ref+0x1c/0x80 drivers/tty/tty_ldisc.c:263 #4: ffffffff8e937f20 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:337 [inline] #4: ffffffff8e937f20 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:849 [inline] #4: ffffffff8e937f20 (rcu_read_lock){....}-{1:2}, at: ppp_channel_bridge_input drivers/net/ppp/ppp_generic.c:2267 [inline] #4: ffffffff8e937f20 (rcu_read_lock){....}-{1:2}, at: ppp_input+0x55/0xa10 drivers/net/ppp/ppp_generic.c:2304 stack backtrace: CPU: 0 UID: 0 PID: 2508 Comm: kworker/u8:7 Not tainted 6.11.0-next-20240924-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/06/2024 Workqueue: events_unbound flush_to_ldisc Call Trace: __dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120 print_usage_bug+0x62e/0x8b0 kernel/locking/lockdep.c:4038 valid_state+0x13a/0x1c0 kernel/locking/lockdep.c:4052 mark_lock_irq+0xbb/0xc20 kernel/locking/lockdep.c:4263 mark_lock+0x223/0x360 kernel/locking/lockdep.c:4725 __lock_acquire+0xbf9/0x2050 kernel/locking/lockdep.c:5156 lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5825 __raw_spin_lock include/linux/spinlock_api_smp.h:133 [inline] _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:154 spin_lock include/linux/spinlock.h:351 [inline] ppp_channel_bridge_input drivers/net/ppp/ppp_generic.c:2272 [inline] ppp_input+0x18b/0xa10 drivers/net/ppp/ppp_generic.c:2304 ppp_async_process+0x7f/0x150 drivers/net/ppp/ppp_async.c:495 tasklet_action_common+0x321/0x4d0 kernel/softirq.c:784 handle_softirqs+0x2c5/0x980 kernel/softirq.c:554 __do_softirq kernel/softirq.c:588 [inline] invoke_softirq kernel/softirq.c:428 [inline] __irq_exit_rcu+0xf4/0x1c0 kernel/softirq.c:637 irq_exit_rcu+0x9/0x30 kernel/softirq.c:649 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1037 [inline] sysvec_apic_timer_interrupt+0xa6/0xc0 arch/x86/kernel/apic/apic.c:1037 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 RIP: 0010:__tasklet_schedule_common+0x1fd/0x270 kernel/softirq.c:733 Code: 40 42 80 3c 33 00 74 08 4c 89 ff e8 4d 10 a7 00 f6 44 24 41 02 75 4f 41 f7 c5 00 02 00 00 74 01 fb 48 c7 44 24 20 0e 36 e0 45 <4b> c7 04 26 00 00 00 00 66 43 c7 44 26 09 00 00 43 c6 44 26 0b 00 RSP: 0018:ffffc900090b78c0 EFLAGS: 00000206 RAX: cb85c01d8fadd600 RBX: 1ffff92001216f20 RCX: ffffffff8170b69a RDX: dffffc0000000000 RSI: ffffffff8c0acb20 RDI: ffffffff8c610a60 RBP: ffffc900090b7998 R08: ffffffff942c789f R09: 1ffffffff2858f13 R10: dffffc0000000000 R11: fffffbfff2858f14 R12: 1ffff92001216f1c R13: 0000000000000246 R14: dffffc0000000000 R15: ffffc900090b7900 tasklet_schedule include/linux/interrupt.h:719 [inline] ppp_asynctty_receive+0x1ea6/0x2000 drivers/net/ppp/ppp_async.c:345 tty_ldisc_receive_buf+0x11f/0x170 drivers/tty/tty_buffer.c:391 tty_port_default_receive_buf+0x6d/0xa0 drivers/tty/tty_port.c:37 receive_buf drivers/tty/tty_buffer.c:445 [inline] flush_to_ldisc+0x328/0x860 drivers/tty/tty_buffer.c:495 process_one_work kernel/workqueue.c:3229 [inline] process_scheduled_works+0xa63/0x1850 kernel/workqueue.c:3310 worker_thread+0x870/0xd30 kernel/workqueue.c:3391 kthread+0x2f0/0x390 kernel/kthread.c:389 ret_from_fork+0x4b/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244 ---------------- Code disassembly (best guess): 0: 40 rex 1: 42 80 3c 33 00 cmpb $0x0,(%rbx,%r14,1) 6: 74 08 je 0x10 8: 4c 89 ff mov %r15,%rdi b: e8 4d 10 a7 00 call 0xa7105d 10: f6 44 24 41 02 testb $0x2,0x41(%rsp) 15: 75 4f jne 0x66 17: 41 f7 c5 00 02 00 00 test $0x200,%r13d 1e: 74 01 je 0x21 20: fb sti 21: 48 c7 44 24 20 0e 36 movq $0x45e0360e,0x20(%rsp) 28: e0 45 * 2a: 4b c7 04 26 00 00 00 movq $0x0,(%r14,%r12,1) <-- trapping instruction 31: 00 32: 66 43 c7 44 26 09 00 movw $0x0,0x9(%r14,%r12,1) 39: 00 3a: 43 c6 44 26 0b 00 movb $0x0,0xb(%r14,%r12,1)