list_add corruption. prev->next should be next (ffff8881f725c060), but was ffff888111898870. (prev=ffff888111898870). ------------[ cut here ]------------ kernel BUG at lib/list_debug.c:28! invalid opcode: 0000 [#1] PREEMPT SMP KASAN CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.10.117-syzkaller-986968-gfdd06dc6b0f8-dirty #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 RIP: 0010:__list_add_valid+0xc6/0xd0 lib/list_debug.c:26 Code: 48 c7 c7 80 da 43 85 4c 89 e6 4c 89 f1 31 c0 e8 ad 2b 40 02 0f 0b 48 c7 c7 40 db 43 85 4c 89 f6 4c 89 e1 31 c0 e8 97 2b 40 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: ffff8881f725c068 RCX: 48b16bb8a2f43400 RDX: 0000000000000102 RSI: 0000000000000102 RDI: 0000000000000000 RBP: ffffc90000007a28 R08: ffffffff8153a998 R09: ffffed103ee4a5d8 R10: ffffed103ee4a5d8 R11: 1ffff1103ee4a5d7 R12: ffff888111898870 R13: dffffc0000000000 R14: ffff8881f725c060 R15: ffff888111898870 FS: 0000000000000000(0000) GS:ffff8881f7200000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f0f2d1d9090 CR3: 000000010cf4c000 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 72 a1 d9 fc 48 83 e3 08 0f 85 ae 00 00 00 e9 0c 00 00 00 e8 3e 9c d9 fc 0f 00 2d d7 b5 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:ffffffff85e07be8 EFLAGS: 00000246 RAX: 1ffffffff0bc35f0 RBX: 0000000000000000 RCX: 0000000000000000 RDX: ffffffff85e1af80 RSI: 0000000000000000 RDI: 0000000000000000 RBP: ffffffff85e07c00 R08: ffffffff8493168e R09: fffffbfff0bc35f1 R10: fffffbfff0bc35f1 R11: 1ffffffff0bc35f0 R12: 0000000000000001 R13: ffff888102b8e804 R14: ffff88810598d864 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+0x45a/0x4cc init/main.c:1053 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 f34643ae8fc7e68b ]--- RIP: 0010:__list_add_valid+0xc6/0xd0 lib/list_debug.c:26 Code: 48 c7 c7 80 da 43 85 4c 89 e6 4c 89 f1 31 c0 e8 ad 2b 40 02 0f 0b 48 c7 c7 40 db 43 85 4c 89 f6 4c 89 e1 31 c0 e8 97 2b 40 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: ffff8881f725c068 RCX: 48b16bb8a2f43400 RDX: 0000000000000102 RSI: 0000000000000102 RDI: 0000000000000000 RBP: ffffc90000007a28 R08: ffffffff8153a998 R09: ffffed103ee4a5d8 R10: ffffed103ee4a5d8 R11: 1ffff1103ee4a5d7 R12: ffff888111898870 R13: dffffc0000000000 R14: ffff8881f725c060 R15: ffff888111898870 FS: 0000000000000000(0000) GS:ffff8881f7200000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f0f2d1d9090 CR3: 000000010cf4c000 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 72 a1 d9 fc callq 0xfcd9a17f 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 3e 9c d9 fc callq 0xfcd99c5f 21: 0f 00 2d d7 b5 b7 00 verw 0xb7b5d7(%rip) # 0xb7b5ff 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