list_add corruption. prev->next should be next (ffff8881f705c160), but was ffff8881100bfc70. (prev=ffff8881100bfc70). ------------[ cut here ]------------ kernel BUG at lib/list_debug.c:28! invalid opcode: 0000 [#1] PREEMPT SMP KASAN CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W 5.10.119-syzkaller-00334-gebc9fb07d294 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 06/29/2022 RIP: 0010:__list_add_valid+0xc6/0xd0 lib/list_debug.c:26 Code: 48 c7 c7 00 e0 43 85 4c 89 e6 4c 89 f1 31 c0 e8 4d a4 3f 02 0f 0b 48 c7 c7 c0 e0 43 85 4c 89 f6 4c 89 e1 31 c0 e8 37 a4 3f 02 <0f> 0b 0f 1f 84 00 00 00 00 00 55 48 89 e5 41 57 41 56 41 54 53 49 RSP: 0018:ffffc90000007a00 EFLAGS: 00010046 RAX: 0000000000000075 RBX: ffff8881f705c168 RCX: 1495a4cf2abb8d00 RDX: 0000000000000102 RSI: 0000000000000102 RDI: 0000000000000000 RBP: ffffc90000007a28 R08: ffffffff8153ad08 R09: ffffed103ee0a5d8 R10: ffffed103ee0a5d8 R11: 1ffff1103ee0a5d7 R12: ffff8881100bfc70 R13: dffffc0000000000 R14: ffff8881f705c160 R15: ffff8881100bfc70 FS: 0000000000000000(0000) GS:ffff8881f7000000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007efdb4d69130 CR3: 000000011d0f8000 CR4: 00000000003506b0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: __list_add include/linux/list.h:67 [inline] list_add_tail include/linux/list.h:100 [inline] insert_work+0x107/0x330 kernel/workqueue.c:1352 __queue_work+0x971/0xd30 kernel/workqueue.c:1514 queue_work_on+0xf2/0x150 kernel/workqueue.c:1541 queue_work include/linux/workqueue.h:513 [inline] css_release+0xae/0xc0 kernel/cgroup/cgroup.c:5161 percpu_ref_put_many include/linux/percpu-refcount.h:322 [inline] percpu_ref_put include/linux/percpu-refcount.h:338 [inline] percpu_ref_call_confirm_rcu lib/percpu-refcount.c:162 [inline] percpu_ref_switch_to_atomic_rcu+0x5a2/0x5b0 lib/percpu-refcount.c:199 rcu_do_batch+0x59e/0xc40 kernel/rcu/tree.c:2485 rcu_core+0x59b/0xe30 kernel/rcu/tree.c:2726 rcu_core_si+0x9/0x10 kernel/rcu/tree.c:2739 __do_softirq+0x27e/0x596 kernel/softirq.c:305 asm_call_irq_on_stack+0xf/0x20 __run_on_irqstack arch/x86/include/asm/irq_stack.h:26 [inline] run_on_irqstack_cond arch/x86/include/asm/irq_stack.h:77 [inline] do_softirq_own_stack+0x60/0x80 arch/x86/kernel/irq_64.c:77 invoke_softirq kernel/softirq.c:402 [inline] __irq_exit_rcu+0x128/0x150 kernel/softirq.c:432 irq_exit_rcu+0x9/0x10 kernel/softirq.c:444 sysvec_apic_timer_interrupt+0xbf/0xe0 arch/x86/kernel/apic/apic.c:1095 asm_sysvec_apic_timer_interrupt+0x12/0x20 arch/x86/include/asm/idtentry.h:635 RIP: 0010:native_irq_disable arch/x86/include/asm/irqflags.h:49 [inline] RIP: 0010:arch_local_irq_disable arch/x86/include/asm/irqflags.h:89 [inline] RIP: 0010:acpi_safe_halt drivers/acpi/processor_idle.c:114 [inline] RIP: 0010:acpi_idle_do_entry+0xbb/0x1f0 drivers/acpi/processor_idle.c:558 Code: 89 de 48 83 e6 08 31 ff e8 12 dc d9 fc 48 83 e3 08 0f 85 ae 00 00 00 e9 0c 00 00 00 e8 de d6 d9 fc 0f 00 2d 47 f3 b7 00 fb f4 e9 a1 00 00 00 49 83 c6 04 4c 89 f0 48 c1 e8 03 42 8a 04 38 84 RSP: 0018:ffffffff86207be8 EFLAGS: 00000246 RAX: 1ffffffff0c435f0 RBX: 0000000000000000 RCX: 0000000000000000 RDX: ffffffff8621af80 RSI: 0000000000000000 RDI: 0000000000000000 RBP: ffffffff86207c00 R08: ffffffff8492de7e R09: fffffbfff0c435f1 R10: fffffbfff0c435f1 R11: 1ffffffff0c435f0 R12: 0000000000000001 R13: ffff8881031d0004 R14: ffff8881059a4064 R15: dffffc0000000000 acpi_idle_enter+0x32d/0x4f0 drivers/acpi/processor_idle.c:693 cpuidle_enter_state+0x5d0/0x14a0 drivers/cpuidle/cpuidle.c:249 cpuidle_enter+0x5f/0xa0 drivers/cpuidle/cpuidle.c:364 call_cpuidle kernel/sched/idle.c:160 [inline] cpuidle_idle_call kernel/sched/idle.c:241 [inline] do_idle+0x369/0x5d0 kernel/sched/idle.c:302 cpu_startup_entry+0x25/0x30 kernel/sched/idle.c:398 rest_init+0xe6/0xf0 init/main.c:714 arch_call_rest_init+0xe/0x10 init/main.c:840 start_kernel+0x448/0x4ba init/main.c:1050 x86_64_start_reservations+0x2a/0x2c arch/x86/kernel/head64.c:526 x86_64_start_kernel+0x7a/0x7d arch/x86/kernel/head64.c:507 secondary_startup_64_no_verify+0xb0/0xbb Modules linked in: ---[ end trace c74af87a98aa3be1 ]--- RIP: 0010:__list_add_valid+0xc6/0xd0 lib/list_debug.c:26 Code: 48 c7 c7 00 e0 43 85 4c 89 e6 4c 89 f1 31 c0 e8 4d a4 3f 02 0f 0b 48 c7 c7 c0 e0 43 85 4c 89 f6 4c 89 e1 31 c0 e8 37 a4 3f 02 <0f> 0b 0f 1f 84 00 00 00 00 00 55 48 89 e5 41 57 41 56 41 54 53 49 RSP: 0018:ffffc90000007a00 EFLAGS: 00010046 RAX: 0000000000000075 RBX: ffff8881f705c168 RCX: 1495a4cf2abb8d00 RDX: 0000000000000102 RSI: 0000000000000102 RDI: 0000000000000000 RBP: ffffc90000007a28 R08: ffffffff8153ad08 R09: ffffed103ee0a5d8 R10: ffffed103ee0a5d8 R11: 1ffff1103ee0a5d7 R12: ffff8881100bfc70 R13: dffffc0000000000 R14: ffff8881f705c160 R15: ffff8881100bfc70 FS: 0000000000000000(0000) GS:ffff8881f7000000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007efdb4d69130 CR3: 000000011d0f8000 CR4: 00000000003506b0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 ---------------- Code disassembly (best guess): 0: 89 de mov %ebx,%esi 2: 48 83 e6 08 and $0x8,%rsi 6: 31 ff xor %edi,%edi 8: e8 12 dc d9 fc callq 0xfcd9dc1f d: 48 83 e3 08 and $0x8,%rbx 11: 0f 85 ae 00 00 00 jne 0xc5 17: e9 0c 00 00 00 jmpq 0x28 1c: e8 de d6 d9 fc callq 0xfcd9d6ff 21: 0f 00 2d 47 f3 b7 00 verw 0xb7f347(%rip) # 0xb7f36f 28: fb sti 29: f4 hlt * 2a: fa cli <-- trapping instruction 2b: e9 a1 00 00 00 jmpq 0xd1 30: 49 83 c6 04 add $0x4,%r14 34: 4c 89 f0 mov %r14,%rax 37: 48 c1 e8 03 shr $0x3,%rax 3b: 42 8a 04 38 mov (%rax,%r15,1),%al 3f: 84 .byte 0x84