list_add corruption. prev->next should be next (ffff8881f715b560), but was ffff88810d49dc70. (prev=ffff88810d49dc70). ------------[ cut here ]------------ kernel BUG at lib/list_debug.c:28! invalid opcode: 0000 [#1] PREEMPT SMP KASAN CPU: 1 PID: 0 Comm: swapper/1 Not tainted 5.10.119-syzkaller-00164-g56c31ac1d8aa #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 RIP: 0010:__list_add_valid+0xde/0xf0 lib/list_debug.c:26 Code: f1 31 c0 e8 b7 cb 1b 02 0f 0b 48 c7 c7 90 3a d6 85 e8 b6 f2 19 00 48 c7 c7 60 f3 02 85 4c 89 f6 4c 89 e1 31 c0 e8 95 cb 1b 02 <0f> 0b 48 c7 c7 a0 3a d6 85 e8 94 f2 19 00 0f 1f 40 00 55 48 89 e5 RSP: 0018:ffffc90000160bc0 EFLAGS: 00010046 RAX: 0000000000000075 RBX: ffff8881f715b568 RCX: 0cc0373b428b7300 RDX: 0000000000000102 RSI: 0000000000000102 RDI: 0000000000000000 RBP: ffffc90000160be8 R08: ffffffff81514558 R09: ffffed103ee2a590 R10: ffffed103ee2a590 R11: 1ffff1103ee2a58f R12: ffff88810d49dc70 R13: dffffc0000000000 R14: ffff8881f715b560 R15: ffff88810d49dc70 FS: 0000000000000000(0000) GS:ffff8881f7100000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007fb7116ac090 CR3: 000000011a5d8000 CR4: 00000000003506a0 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+0xfc/0x330 kernel/workqueue.c:1342 __queue_work+0x99e/0xe20 kernel/workqueue.c:1504 queue_work_on+0xbe/0x110 kernel/workqueue.c:1531 queue_work include/linux/workqueue.h:507 [inline] css_release+0xae/0xc0 kernel/cgroup/cgroup.c:5112 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+0x5be/0x5e0 lib/percpu-refcount.c:199 rcu_do_batch+0x4ad/0xb00 kernel/rcu/tree.c:2485 rcu_core+0x64a/0xdf0 kernel/rcu/tree.c:2726 rcu_core_si+0x9/0x10 kernel/rcu/tree.c:2739 __do_softirq+0x253/0x67b kernel/softirq.c:298 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:393 [inline] __irq_exit_rcu+0x152/0x1e0 kernel/softirq.c:423 irq_exit_rcu+0x9/0x10 kernel/softirq.c:435 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 b2 e0 0a fd 48 83 e3 08 0f 85 ae 00 00 00 e9 0c 00 00 00 e8 7e db 0a fd 0f 00 2d e7 b8 ab 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:ffffc900000f7d58 EFLAGS: 00000246 RAX: 1ffff11020046b70 RBX: 0000000000000000 RCX: 0000000000000000 RDX: ffff888100235b80 RSI: 0000000000000000 RDI: 0000000000000000 RBP: ffffc900000f7d70 R08: ffffffff845e2ebe R09: ffffed1020046b71 R10: ffffed1020046b71 R11: 1ffff11020046b70 R12: 0000000000000001 R13: ffff888105710004 R14: ffff888101cf7064 R15: dffffc0000000000 acpi_idle_enter+0x32d/0x4f0 drivers/acpi/processor_idle.c:693 cpuidle_enter_state+0x4c8/0x10d0 drivers/cpuidle/cpuidle.c:237 cpuidle_enter+0x5f/0xa0 drivers/cpuidle/cpuidle.c:351 call_cpuidle kernel/sched/idle.c:158 [inline] cpuidle_idle_call kernel/sched/idle.c:239 [inline] do_idle+0x3a8/0x540 kernel/sched/idle.c:300 cpu_startup_entry+0x25/0x30 kernel/sched/idle.c:396 start_secondary+0xd7/0xe0 arch/x86/kernel/smpboot.c:265 secondary_startup_64_no_verify+0xb0/0xbb Modules linked in: ---[ end trace f483058663da04a2 ]--- RIP: 0010:__list_add_valid+0xde/0xf0 lib/list_debug.c:26 Code: f1 31 c0 e8 b7 cb 1b 02 0f 0b 48 c7 c7 90 3a d6 85 e8 b6 f2 19 00 48 c7 c7 60 f3 02 85 4c 89 f6 4c 89 e1 31 c0 e8 95 cb 1b 02 <0f> 0b 48 c7 c7 a0 3a d6 85 e8 94 f2 19 00 0f 1f 40 00 55 48 89 e5 RSP: 0018:ffffc90000160bc0 EFLAGS: 00010046 RAX: 0000000000000075 RBX: ffff8881f715b568 RCX: 0cc0373b428b7300 RDX: 0000000000000102 RSI: 0000000000000102 RDI: 0000000000000000 RBP: ffffc90000160be8 R08: ffffffff81514558 R09: ffffed103ee2a590 R10: ffffed103ee2a590 R11: 1ffff1103ee2a58f R12: ffff88810d49dc70 R13: dffffc0000000000 R14: ffff8881f715b560 R15: ffff88810d49dc70 FS: 0000000000000000(0000) GS:ffff8881f7100000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007fb7116ac090 CR3: 000000011a5d8000 CR4: 00000000003506a0 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 b2 e0 0a fd callq 0xfd0ae0bf 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 7e db 0a fd callq 0xfd0adb9f 21: 0f 00 2d e7 b8 ab 00 verw 0xabb8e7(%rip) # 0xabb90f 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