================================ WARNING: inconsistent lock state 6.11.0-syzkaller-11993-g3efc57369a0c #0 Not tainted -------------------------------- inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage. kworker/u8:11/12865 [HC0[0]:SC1[3]:HE1:SE0] takes: ffff8880670ba1e0 (&pch->downl){+.?.}-{2:2}, at: spin_lock include/linux/spinlock.h:351 [inline] ffff8880670ba1e0 (&pch->downl){+.?.}-{2:2}, at: __ppp_channel_push+0x31/0x1e0 drivers/net/ppp/ppp_generic.c:2161 {SOFTIRQ-ON-W} state was registered at: lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5822 __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:729 [inline] __sock_sendmsg+0x221/0x270 net/socket.c:744 ____sys_sendmsg+0x52a/0x7e0 net/socket.c:2602 ___sys_sendmsg net/socket.c:2656 [inline] __sys_sendmmsg+0x3ab/0x730 net/socket.c:2742 __do_sys_sendmmsg net/socket.c:2771 [inline] __se_sys_sendmmsg net/socket.c:2768 [inline] __x64_sys_sendmmsg+0xa0/0xb0 net/socket.c:2768 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: 25646674 hardirqs last enabled at (25646674): [] __local_bh_enable_ip+0x168/0x200 kernel/softirq.c:387 hardirqs last disabled at (25646673): [] __local_bh_enable_ip+0x106/0x200 kernel/softirq.c:364 softirqs last enabled at (25646638): [] spin_unlock_bh include/linux/spinlock.h:396 [inline] softirqs last enabled at (25646638): [] batadv_nc_purge_paths+0x312/0x3b0 net/batman-adv/network-coding.c:471 softirqs last disabled at (25646645): [] __do_softirq kernel/softirq.c:588 [inline] softirqs last disabled at (25646645): [] invoke_softirq kernel/softirq.c:428 [inline] softirqs last disabled at (25646645): [] __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 *** 3 locks held by kworker/u8:11/12865: #0: ffff88802ea8a148 ((wq_completion)bat_events){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:3204 [inline] #0: ffff88802ea8a148 ((wq_completion)bat_events){+.+.}-{0:0}, at: process_scheduled_works+0x93b/0x1850 kernel/workqueue.c:3310 #1: ffffc90002effd00 ((work_completion)(&(&bat_priv->nc.work)->work)){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:3205 [inline] #1: ffffc90002effd00 ((work_completion)(&(&bat_priv->nc.work)->work)){+.+.}-{0:0}, at: process_scheduled_works+0x976/0x1850 kernel/workqueue.c:3310 #2: ffff8880670ba248 (&pch->upl){++.-}-{2:2}, at: ppp_channel_push+0x2c/0x220 drivers/net/ppp/ppp_generic.c:2186 stack backtrace: CPU: 0 UID: 0 PID: 12865 Comm: kworker/u8:11 Not tainted 6.11.0-syzkaller-11993-g3efc57369a0c #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 Workqueue: bat_events batadv_nc_worker 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:4035 valid_state+0x13a/0x1c0 kernel/locking/lockdep.c:4049 mark_lock_irq+0xbb/0xc20 kernel/locking/lockdep.c:4260 mark_lock+0x223/0x360 kernel/locking/lockdep.c:4722 __lock_acquire+0xbf9/0x2050 kernel/locking/lockdep.c:5153 lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5822 __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_push+0x31/0x1e0 drivers/net/ppp/ppp_generic.c:2161 ppp_channel_push+0x196/0x220 drivers/net/ppp/ppp_generic.c:2192 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 common_interrupt+0xb9/0xd0 arch/x86/kernel/irq.c:278 asm_common_interrupt+0x26/0x40 arch/x86/include/asm/idtentry.h:693 RIP: 0010:lock_acquire+0x8d/0x550 kernel/locking/lockdep.c:5790 Code: 8e 48 c7 44 24 50 00 44 70 81 4c 8d 64 24 40 49 c1 ec 03 48 b8 f1 f1 f1 f1 00 f2 f2 f2 4b 89 04 2c 43 c7 44 2c 09 f2 f2 f2 00 <43> c7 44 2c 11 f3 f3 f3 f3 66 43 c7 44 2c 15 f3 f3 43 c6 44 2c 17 RSP: 0018:ffffc90002eff9e0 EFLAGS: 00000a06 RAX: f2f2f200f1f1f1f1 RBX: ffff888066455640 RCX: 0000000000000002 RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffffffff8e937da0 RBP: ffffc90002effb40 R08: 0000000000000000 R09: 0000000000000000 R10: dffffc0000000000 R11: fffffbfff2039c7e R12: 1ffff920005dff44 R13: dffffc0000000000 R14: 0000000000000000 R15: dffffc0000000000 rcu_lock_acquire include/linux/rcupdate.h:337 [inline] rcu_read_lock include/linux/rcupdate.h:849 [inline] batadv_nc_purge_orig_hash net/batman-adv/network-coding.c:408 [inline] batadv_nc_worker+0xec/0x610 net/batman-adv/network-coding.c:719 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: 8e 48 c7 mov -0x39(%rax),%cs 3: 44 24 50 rex.R and $0x50,%al 6: 00 44 70 81 add %al,-0x7f(%rax,%rsi,2) a: 4c 8d 64 24 40 lea 0x40(%rsp),%r12 f: 49 c1 ec 03 shr $0x3,%r12 13: 48 b8 f1 f1 f1 f1 00 movabs $0xf2f2f200f1f1f1f1,%rax 1a: f2 f2 f2 1d: 4b 89 04 2c mov %rax,(%r12,%r13,1) 21: 43 c7 44 2c 09 f2 f2 movl $0xf2f2f2,0x9(%r12,%r13,1) 28: f2 00 * 2a: 43 c7 44 2c 11 f3 f3 movl $0xf3f3f3f3,0x11(%r12,%r13,1) <-- trapping instruction 31: f3 f3 33: 66 43 c7 44 2c 15 f3 movw $0xf3f3,0x15(%r12,%r13,1) 3a: f3 3b: 43 rex.XB 3c: c6 .byte 0xc6 3d: 44 2c 17 rex.R sub $0x17,%al