Re: [syzbot] [mm?] WARNING in swap_cluster_assert_empty

From: Kairui Song

Date: Tue Jun 02 2026 - 12:37:56 EST


On Tue, Jun 02, 2026 at 03:12:30AM +0800, syzbot wrote:
> Hello,
>
> syzbot found the following issue on:
>
> HEAD commit: 8fde5d1d47f6 Merge tag 'acpi-7.1-rc6' of git://git.kernel...
> git tree: upstream
> console output: https://syzkaller.appspot.com/x/log.txt?x=118c327a580000
> kernel config: https://syzkaller.appspot.com/x/.config?x=8118209836970b54
> dashboard link: https://syzkaller.appspot.com/bug?extid=deedf22929084640666f
> compiler: gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44
>
> Unfortunately, I don't have any reproducer for this issue yet.
>
> Downloadable assets:
> disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/d900f083ada3/non_bootable_disk-8fde5d1d.raw.xz
> vmlinux: https://storage.googleapis.com/syzbot-assets/529080512bd5/vmlinux-8fde5d1d.xz
> kernel image: https://storage.googleapis.com/syzbot-assets/39c09b74f46c/bzImage-8fde5d1d.xz
>
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+deedf22929084640666f@xxxxxxxxxxxxxxxxxxxxxxxxx
>
> ------------[ cut here ]------------
> nr == SWAPFILE_CLUSTER && ci->extend_table
> WARNING: mm/swapfile.c:471 at swap_cluster_assert_empty+0x2d5/0x320 mm/swapfile.c:471, CPU#3: syz.1.267/6778
> Modules linked in:
> CPU: 3 UID: 0 PID: 6778 Comm: syz.1.267 Not tainted syzkaller #0 PREEMPT(full)
> Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
> RIP: 0010:swap_cluster_assert_empty+0x2d5/0x320 mm/swapfile.c:471
> Code: 9b ff 49 8d 7d 50 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 80 3c 02 00 75 46 49 83 7d 50 00 74 a5 e8 4c 09 9b ff 90 <0f> 0b 90 eb 9a e8 41 09 9b ff 90 0f 0b 90 e9 6f ff ff ff 48 89 ef
> RSP: 0018:ffffc900039d7098 EFLAGS: 00010293
> RAX: 0000000000000000 RBX: 0000000000000200 RCX: ffffffff826d976c
> RDX: ffff888037a62540 RSI: ffffffff826d97d4 RDI: ffff8880273450f8
> RBP: 0000000000000000 R08: 0000000000000005 R09: 0000000000000200
> R10: 0000000000000200 R11: 0000000000000000 R12: 0000000000000200
> R13: ffff8880273450a8 R14: 0000000000000001 R15: 0000000000000000
> FS: 0000000000000000(0000) GS:ffff8880d6686000(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 0000001b33323ffc CR3: 000000000e596000 CR4: 0000000000352ef0
> Call Trace:
> <TASK>
> __free_cluster mm/swapfile.c:585 [inline]
> free_cluster+0x14b/0x360 mm/swapfile.c:714
> __swap_cluster_free_entries+0x73f/0xa30 mm/swapfile.c:1894
> swap_put_entries_cluster+0x473/0x5b0 mm/swapfile.c:1584
> swap_put_entries_direct+0x123/0x1b0 mm/swapfile.c:2072
> shmem_free_swap+0x1f4/0x200 mm/shmem.c:985
> shmem_undo_range+0x3fd/0x1570 mm/shmem.c:1139
> shmem_truncate_range mm/shmem.c:1277 [inline]
> shmem_evict_inode+0x3f3/0xc40 mm/shmem.c:1407
> evict+0x3c2/0xad0 fs/inode.c:841
> iput_final fs/inode.c:1960 [inline]
> iput.part.0+0x605/0xf50 fs/inode.c:2009
> iput+0x35/0x40 fs/inode.c:1975
> dentry_unlink_inode+0x2c0/0x4c0 fs/dcache.c:476
> __dentry_kill+0x1d0/0x690 fs/dcache.c:718
> finish_dput+0x76/0x480 fs/dcache.c:927
> dput.part.0+0x456/0x570 fs/dcache.c:976
> dput+0x1f/0x30 fs/dcache.c:968
> __fput+0x519/0xb50 fs/file_table.c:518
> task_work_run+0x150/0x240 kernel/task_work.c:233
> exit_task_work include/linux/task_work.h:40 [inline]
> do_exit+0x951/0x2af0 kernel/exit.c:976
> do_group_exit+0xd5/0x2a0 kernel/exit.c:1119
> get_signal+0x20ff/0x2210 kernel/signal.c:3037
> arch_do_signal_or_restart+0x91/0x7e0 arch/x86/kernel/signal.c:337
> __exit_to_user_mode_loop kernel/entry/common.c:64 [inline]
> exit_to_user_mode_loop kernel/entry/common.c:98 [inline]
> __exit_to_user_mode_prepare include/linux/irq-entry-common.h:207 [inline]
> irqentry_exit_to_user_mode_prepare include/linux/irq-entry-common.h:244 [inline]
> irqentry_exit_to_user_mode include/linux/irq-entry-common.h:315 [inline]
> irqentry_exit+0x39e/0x970 kernel/entry/common.c:162
> asm_exc_page_fault+0x26/0x30 arch/x86/include/asm/idtentry.h:618
> RIP: 0033:0x7f3317d9ce61
> Code: Unable to access opcode bytes at 0x7f3317d9ce37.
> RSP: 002b:0000000000000030 EFLAGS: 00010217
> RAX: 0000000000000000 RBX: 00007f3318015fa0 RCX: 00007f3317d9ce59
> RDX: 0000000000000000 RSI: 0000000000000030 RDI: 0000000000000011
> RBP: 00007f3317e32d6f R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000000000000 R11: 0000000000000206 R12: 0000000000000000
> R13: 00007f3318016038 R14: 00007f3318015fa0 R15: 00007ffc650798c8
> </TASK>

I think this is already fixed by:
https://lore.kernel.org/20260515-swap-extend-table-fix-v2-1-833d72ad53e5@xxxxxxxxxxx

I checked syzbot dashboard, the fix isn't included in the commit being tested.