list_add corruption. next->prev should be prev (ffffe8ffffc31ed0), but was ffff8880354f5000. (next=ffff88801aa39400). ------------[ cut here ]------------ kernel BUG at lib/list_debug.c:31! Oops: invalid opcode: 0000 [#1] PREEMPT SMP KASAN NOPTI CPU: 0 UID: 0 PID: 4810 Comm: dhcpcd Not tainted 6.12.0-rc1-syzkaller #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 RIP: 0010:__list_add_valid_or_report+0xd6/0xf0 lib/list_debug.c:29 Code: e8 6f 08 00 07 90 0f 0b 48 c7 c7 00 f9 60 8c e8 60 08 00 07 90 0f 0b 48 c7 c7 60 f9 60 8c 4c 89 e6 4c 89 f1 e8 4b 08 00 07 90 <0f> 0b 48 c7 c7 e0 f9 60 8c 4c 89 f6 4c 89 e1 e8 36 08 00 07 90 0f RSP: 0018:ffffc90002beed68 EFLAGS: 00010246 RAX: 0000000000000075 RBX: ffff88801aa39408 RCX: e74b4a6b4d3c8400 RDX: 0000000000000000 RSI: 0000000000000002 RDI: 0000000000000000 RBP: ffffe8ffffc31ed0 R08: ffffffff81749dec R09: 1ffff9200057dd48 R10: dffffc0000000000 R11: fffff5200057dd49 R12: ffffe8ffffc31ed0 R13: dffffc0000000000 R14: ffff88801aa39400 R15: ffff888011a1a000 FS: 00007f01a6997740(0000) GS:ffff88801fc00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f01a69980e8 CR3: 000000003f8a4000 CR4: 0000000000352ef0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: __list_add_valid include/linux/list.h:88 [inline] __list_add include/linux/list.h:150 [inline] list_add include/linux/list.h:169 [inline] add_to_unbuddied+0x2e4/0x4d0 mm/z3fold.c:550 do_compact_page+0x924/0xc50 mm/z3fold.c:772 zswap_entry_free+0x2f6/0x440 mm/zswap.c:799 zswap_load+0x386/0x8f0 mm/zswap.c:1584 swap_read_folio+0x8c0/0x20b0 mm/page_io.c:618 swap_cluster_readahead+0x3d6/0x7f0 mm/swap_state.c:690 swapin_readahead+0x1bb/0xdf0 mm/swap_state.c:882 do_swap_page+0x584/0x7b30 mm/memory.c:4324 handle_pte_fault+0x61d/0x6800 mm/memory.c:5754 __handle_mm_fault mm/memory.c:5894 [inline] handle_mm_fault+0x1106/0x1bb0 mm/memory.c:6062 do_user_addr_fault arch/x86/mm/fault.c:1389 [inline] handle_page_fault arch/x86/mm/fault.c:1481 [inline] exc_page_fault+0x2b9/0x8c0 arch/x86/mm/fault.c:1539 asm_exc_page_fault+0x26/0x30 arch/x86/include/asm/idtentry.h:623 RIP: 0010:__get_user_8+0x11/0x20 arch/x86/lib/getuser.S:97 Code: ca c3 cc cc cc cc 0f 1f 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 f3 0f 1e fa 48 89 c2 48 c1 fa 3f 48 09 d0 0f 01 cb <48> 8b 10 31 c0 0f 01 ca c3 cc cc cc cc 66 90 90 90 90 90 90 90 90 RSP: 0018:ffffc90002befd98 EFLAGS: 00050206 RAX: 00007f01a69980e8 RBX: ffff88801ce1ddd8 RCX: ffffc90002befc03 RDX: 0000000000000000 RSI: ffffffff8c0adba0 RDI: ffffffff8c60f7a0 RBP: ffffc90002befec8 R08: ffffffff901ce62f R09: 1ffffffff2039cc5 R10: dffffc0000000000 R11: fffffbfff2039cc6 R12: ffffc90002befda0 R13: ffffc90002beffd8 R14: dffffc0000000000 R15: ffff88801ce1c880 rseq_get_rseq_cs kernel/rseq.c:161 [inline] rseq_ip_fixup kernel/rseq.c:281 [inline] __rseq_handle_notify_resume+0x159/0x14e0 kernel/rseq.c:329 rseq_handle_notify_resume include/linux/rseq.h:38 [inline] resume_user_mode_work include/linux/resume_user_mode.h:62 [inline] exit_to_user_mode_loop kernel/entry/common.c:114 [inline] exit_to_user_mode_prepare include/linux/entry-common.h:328 [inline] __syscall_exit_to_user_mode_work kernel/entry/common.c:207 [inline] syscall_exit_to_user_mode+0x114/0x370 kernel/entry/common.c:218 do_syscall_64+0x100/0x230 arch/x86/entry/common.c:89 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f01a6a64ad5 Code: 85 d2 74 0d 0f 10 02 48 8d 54 24 20 0f 11 44 24 20 64 8b 04 25 18 00 00 00 85 c0 75 27 41 b8 08 00 00 00 b8 0f 01 00 00 0f 05 <48> 3d 00 f0 ff ff 76 75 48 8b 15 24 73 0d 00 f7 d8 64 89 02 48 83 RSP: 002b:00007ffd55e31e50 EFLAGS: 00000246 ORIG_RAX: 000000000000010f RAX: 0000000000000002 RBX: 000055d27eb22dd0 RCX: 00007f01a6a64ad5 RDX: 0000000000000000 RSI: 0000000000000003 RDI: 000055d27eb22db0 RBP: 00007ffd55e321a0 R08: 0000000000000008 R09: 00007ffd55e11a44 R10: 00007ffd55e321a0 R11: 0000000000000246 R12: 0000000000000000 R13: 000055d26764f610 R14: 0000000000000000 R15: 0000000000000000 Modules linked in: ---[ end trace 0000000000000000 ]--- RIP: 0010:__list_add_valid_or_report+0xd6/0xf0 lib/list_debug.c:29 Code: e8 6f 08 00 07 90 0f 0b 48 c7 c7 00 f9 60 8c e8 60 08 00 07 90 0f 0b 48 c7 c7 60 f9 60 8c 4c 89 e6 4c 89 f1 e8 4b 08 00 07 90 <0f> 0b 48 c7 c7 e0 f9 60 8c 4c 89 f6 4c 89 e1 e8 36 08 00 07 90 0f RSP: 0018:ffffc90002beed68 EFLAGS: 00010246 RAX: 0000000000000075 RBX: ffff88801aa39408 RCX: e74b4a6b4d3c8400 RDX: 0000000000000000 RSI: 0000000000000002 RDI: 0000000000000000 RBP: ffffe8ffffc31ed0 R08: ffffffff81749dec R09: 1ffff9200057dd48 R10: dffffc0000000000 R11: fffff5200057dd49 R12: ffffe8ffffc31ed0 R13: dffffc0000000000 R14: ffff88801aa39400 R15: ffff888011a1a000 FS: 00007f01a6997740(0000) GS:ffff88801fc00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f01a69980e8 CR3: 000000003f8a4000 CR4: 0000000000352ef0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 ---------------- Code disassembly (best guess): 0: ca c3 cc lret $0xccc3 3: cc int3 4: cc int3 5: cc int3 6: 0f 1f 00 nopl (%rax) 9: 90 nop a: 90 nop b: 90 nop c: 90 nop d: 90 nop e: 90 nop f: 90 nop 10: 90 nop 11: 90 nop 12: 90 nop 13: 90 nop 14: 90 nop 15: 90 nop 16: 90 nop 17: 90 nop 18: 90 nop 19: f3 0f 1e fa endbr64 1d: 48 89 c2 mov %rax,%rdx 20: 48 c1 fa 3f sar $0x3f,%rdx 24: 48 09 d0 or %rdx,%rax 27: 0f 01 cb stac * 2a: 48 8b 10 mov (%rax),%rdx <-- trapping instruction 2d: 31 c0 xor %eax,%eax 2f: 0f 01 ca clac 32: c3 ret 33: cc int3 34: cc int3 35: cc int3 36: cc int3 37: 66 90 xchg %ax,%ax 39: 90 nop 3a: 90 nop 3b: 90 nop 3c: 90 nop 3d: 90 nop 3e: 90 nop 3f: 90 nop