slab kmalloc-96 start ffff88801f56d180 pointer offset 0 size 96 list_add corruption. next->prev should be prev (ffffe8ffffc38090), but was ffffffff84ba1530. (next=ffff88801f56d180). ------------[ cut here ]------------ kernel BUG at lib/list_debug.c:31! Oops: invalid opcode: 0000 [#1] PREEMPT SMP KASAN NOPTI CPU: 0 UID: 0 PID: 5321 Comm: syz.0.0 Not tainted 6.14.0-rc5-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+0xf3/0x130 lib/list_debug.c:29 Code: d2 0a fd 42 80 7c 2d 00 00 74 08 48 89 df e8 c4 c3 2c fd 49 8b 56 08 48 c7 c7 a0 f1 80 8c 4c 89 e6 4c 89 f1 e8 be cf 2a fc 90 <0f> 0b 4c 89 e7 e8 03 d2 0a fd 42 80 3c 2b 00 74 08 4c 89 e7 e8 94 RSP: 0018:ffffc9000d34e960 EFLAGS: 00010246 RAX: 0000000000000075 RBX: ffff88801f56d188 RCX: cc73df9e8bc42a00 RDX: ffffc9000f443000 RSI: 00000000000fffff RDI: 0000000000100000 RBP: 1ffff11003eada31 R08: ffffffff81a1152c R09: fffffbfff1d3a614 R10: dffffc0000000000 R11: fffffbfff1d3a614 R12: ffffe8ffffc38090 R13: dffffc0000000000 R14: ffff88801f56d180 R15: ffff888011e93000 FS: 00007f8ca73d86c0(0000) GS:ffff88801fc00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f8c9a8c2000 CR3: 00000000428a6000 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+0x5da/0xd30 mm/z3fold.c:772 zswap_entry_free+0x2f6/0x440 mm/zswap.c:806 zswap_load+0x364/0x4a0 mm/zswap.c:1663 swap_read_folio+0x9b4/0x2690 mm/page_io.c:641 swap_cluster_readahead+0x3cf/0x710 mm/swap_state.c:689 swapin_readahead+0x1ba/0xd30 mm/swap_state.c:881 do_swap_page+0x5c4/0x5c40 mm/memory.c:4422 handle_pte_fault mm/memory.c:5903 [inline] __handle_mm_fault+0x13dd/0x70f0 mm/memory.c:6043 handle_mm_fault+0x3e5/0x8d0 mm/memory.c:6212 do_user_addr_fault arch/x86/mm/fault.c:1388 [inline] handle_page_fault arch/x86/mm/fault.c:1480 [inline] exc_page_fault+0x2b9/0x8b0 arch/x86/mm/fault.c:1538 asm_exc_page_fault+0x26/0x30 arch/x86/include/asm/idtentry.h:623 RIP: 0010:fault_in_readable+0x173/0x2d0 mm/gup.c:2241 Code: 00 fc ff df 4c 89 e8 4f 8d ac 25 ff 0f 00 00 49 81 e5 00 f0 ff ff 49 39 c5 72 7a e8 c7 b7 b4 ff 4c 39 eb 74 7d 4c 89 64 24 08 <44> 8a 23 43 0f b6 04 3e 84 c0 75 18 44 88 64 24 40 48 81 c3 00 10 RSP: 0018:ffffc9000d34fa40 EFLAGS: 00050287 RAX: ffffffff820d0759 RBX: 00007f8c9a8c2000 RCX: 0000000000100000 RDX: ffffc9000f443000 RSI: 00000000000fffff RDI: 0000000000100000 RBP: ffffc9000d34faf8 R08: ffffffff820d06ec R09: ffffffff84f2b2f9 R10: 0000000000000002 R11: ffff88801d322440 R12: 0000000000001000 R13: 00007f8c9a8c3000 R14: 1ffff92001a69f50 R15: dffffc0000000000 fault_in_iov_iter_readable+0x229/0x280 lib/iov_iter.c:94 generic_perform_write+0x260/0x990 mm/filemap.c:4179 shmem_file_write_iter+0xf9/0x120 mm/shmem.c:3454 new_sync_write fs/read_write.c:586 [inline] vfs_write+0xacf/0xd10 fs/read_write.c:679 ksys_write+0x18f/0x2b0 fs/read_write.c:731 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 RIP: 0033:0x7f8ca658bc1f Code: 89 54 24 18 48 89 74 24 10 89 7c 24 08 e8 f9 92 02 00 48 8b 54 24 18 48 8b 74 24 10 41 89 c0 8b 7c 24 08 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 31 44 89 c7 48 89 44 24 08 e8 4c 93 02 00 48 RSP: 002b:00007f8ca73d7df0 EFLAGS: 00000293 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 0000000001000000 RCX: 00007f8ca658bc1f RDX: 0000000001000000 RSI: 00007f8c9a400000 RDI: 000000000000000a RBP: 0000000000000000 R08: 0000000000000000 R09: 00000000000059a4 R10: 0000400000014982 R11: 0000000000000293 R12: 000000000000000a R13: 00007f8ca73d7ef0 R14: 00007f8ca73d7eb0 R15: 00007f8c9a400000 Modules linked in: ---[ end trace 0000000000000000 ]--- RIP: 0010:__list_add_valid_or_report+0xf3/0x130 lib/list_debug.c:29 Code: d2 0a fd 42 80 7c 2d 00 00 74 08 48 89 df e8 c4 c3 2c fd 49 8b 56 08 48 c7 c7 a0 f1 80 8c 4c 89 e6 4c 89 f1 e8 be cf 2a fc 90 <0f> 0b 4c 89 e7 e8 03 d2 0a fd 42 80 3c 2b 00 74 08 4c 89 e7 e8 94 RSP: 0018:ffffc9000d34e960 EFLAGS: 00010246 RAX: 0000000000000075 RBX: ffff88801f56d188 RCX: cc73df9e8bc42a00 RDX: ffffc9000f443000 RSI: 00000000000fffff RDI: 0000000000100000 RBP: 1ffff11003eada31 R08: ffffffff81a1152c R09: fffffbfff1d3a614 R10: dffffc0000000000 R11: fffffbfff1d3a614 R12: ffffe8ffffc38090 R13: dffffc0000000000 R14: ffff88801f56d180 R15: ffff888011e93000 FS: 00007f8ca73d86c0(0000) GS:ffff88801fc00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f8c9a8c2000 CR3: 00000000428a6000 CR4: 0000000000352ef0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 ---------------- Code disassembly (best guess), 3 bytes skipped: 0: df 4c 89 e8 fisttps -0x18(%rcx,%rcx,4) 4: 4f 8d ac 25 ff 0f 00 lea 0xfff(%r13,%r12,1),%r13 b: 00 c: 49 81 e5 00 f0 ff ff and $0xfffffffffffff000,%r13 13: 49 39 c5 cmp %rax,%r13 16: 72 7a jb 0x92 18: e8 c7 b7 b4 ff call 0xffb4b7e4 1d: 4c 39 eb cmp %r13,%rbx 20: 74 7d je 0x9f 22: 4c 89 64 24 08 mov %r12,0x8(%rsp) * 27: 44 8a 23 mov (%rbx),%r12b <-- trapping instruction 2a: 43 0f b6 04 3e movzbl (%r14,%r15,1),%eax 2f: 84 c0 test %al,%al 31: 75 18 jne 0x4b 33: 44 88 64 24 40 mov %r12b,0x40(%rsp) 38: 48 rex.W 39: 81 .byte 0x81 3a: c3 ret 3b: 00 10 add %dl,(%rax)