Re: [syzbot] [mm?] WARNING in alloc_frozen_pages_noprof (2)
From: Andrew Morton
Date: Tue May 26 2026 - 15:58:28 EST
On Mon, 25 May 2026 19:49:23 -0700 syzbot <syzbot+5d32c8bd82427f9c77cc@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
> Hello,
>
> syzbot found the following issue on:
>
> HEAD commit: 4cbfe4502e3d Merge tag 'v7.1-rc5-ksmbd-server-fixes' of gi..
> git tree: https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux master
> console output: https://syzkaller.appspot.com/x/log.txt?x=146c161f980000
> kernel config: https://syzkaller.appspot.com/x/.config?x=9475bd041c93289
> dashboard link: https://syzkaller.appspot.com/bug?extid=5d32c8bd82427f9c77cc
> compiler: aarch64-linux-gnu-gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44
> userspace arch: arm64
> syz repro: https://syzkaller.appspot.com/x/repro.syz?x=11026336580000
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=14ab9796580000
Thanks.
> Downloadable assets:
> disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/fa3fbcfdac58/non_bootable_disk-4cbfe450.raw.xz
> vmlinux: https://storage.googleapis.com/syzbot-assets/e825a08fb48d/vmlinux-4cbfe450.xz
> kernel image: https://storage.googleapis.com/syzbot-assets/55037c053ec3/Image-4cbfe450.gz.xz
>
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+5d32c8bd82427f9c77cc@xxxxxxxxxxxxxxxxxxxxxxxxx
>
> ------------[ cut here ]------------
> WARNING: mm/page_alloc.c:5202 at __alloc_frozen_pages_noprof+0x734/0x1144 mm/page_alloc.c:5202, CPU#0: syz.2.17/3592
if (WARN_ON_ONCE_GFP(order > MAX_PAGE_ORDER, gfp))
> Modules linked in:
> CPU: 0 UID: 0 PID: 3592 Comm: syz.2.17 Not tainted syzkaller #0 PREEMPT
> Hardware name: linux,dummy-virt (DT)
> pstate: 21402009 (nzCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--)
> pc : __alloc_frozen_pages_noprof+0x734/0x1144 mm/page_alloc.c:5202
> lr : alloc_pages_mpol+0x70/0x1a4 mm/mempolicy.c:2490
> sp : ffff800085d93900
> x29: ffff800085d93a00 x28: 000000000000000b x27: 0000000000000000
> x26: 0000000000000000 x25: fcf0000014c00000 x24: 0000000000040dc0
> x23: 0000000000000000 x22: 0000000000000000 x21: 000000000000000b
> x20: ffffffffffffffff x19: 0000000000000000 x18: 0000000000000002
> x17: 0000000000000000 x16: 0000000000000000 x15: 0000000020000200
> x14: ffff8000828b2000 x13: ffffc1ffc0000000 x12: 0000000000000001
> x11: 0000000000000000 x10: ffff800082b6f4e8 x9 : 0000000000000000
> x8 : 0000000000000030 x7 : ffff800082e9b430 x6 : 0000000000000001
> x5 : 0000000000000000 x4 : f3f00000065c90c0 x3 : 0000000000000000
> x2 : 0000000000000000 x1 : 0000000000000001 x0 : ffff800082dfd000
> Call trace:
> __alloc_frozen_pages_noprof+0x734/0x1144 mm/page_alloc.c:5202 (P)
> alloc_pages_mpol+0x70/0x1a4 mm/mempolicy.c:2490
> alloc_frozen_pages_noprof+0x48/0xd4 mm/mempolicy.c:2561
> ___kmalloc_large_node+0x11c/0x13c mm/slub.c:5237
> __kmalloc_large_node_noprof mm/slub.c:5268 [inline]
> __do_kmalloc_node mm/slub.c:5284 [inline]
> __kmalloc_noprof+0x450/0x560 mm/slub.c:5308
> kmalloc_noprof include/linux/slab.h:954 [inline]
> kzalloc_noprof include/linux/slab.h:1188 [inline]
> fill_object_idr drivers/gpu/drm/drm_lease.c:389 [inline]
> drm_mode_create_lease_ioctl+0x184/0x93c drivers/gpu/drm/drm_lease.c:521
> drm_ioctl_kernel+0xc0/0x130 drivers/gpu/drm/drm_ioctl.c:804
> drm_ioctl+0x258/0x580 drivers/gpu/drm/drm_ioctl.c:901
> vfs_ioctl fs/ioctl.c:51 [inline]
Methinks drm_mode_create_lease_ioctl() wants some more arg checking.
otoh, memdup_user() passes __GFP_NOWARN, so perhaps
__alloc_frozen_pages_noprof() should be taught to honor that.
> __do_sys_ioctl fs/ioctl.c:597 [inline]
> __se_sys_ioctl fs/ioctl.c:583 [inline]
> __arm64_sys_ioctl+0xac/0x104 fs/ioctl.c:583
> __invoke_syscall arch/arm64/kernel/syscall.c:35 [inline]
> invoke_syscall+0x54/0x10c arch/arm64/kernel/syscall.c:49
> el0_svc_common.constprop.0+0x40/0xe0 arch/arm64/kernel/syscall.c:121
> do_el0_svc+0x1c/0x34 arch/arm64/kernel/syscall.c:140
> el0_svc+0x38/0x140 arch/arm64/kernel/entry-common.c:740
> el0t_64_sync_handler+0xa0/0xf0 arch/arm64/kernel/entry-common.c:759
> el0t_64_sync+0x1a4/0x1a8 arch/arm64/kernel/entry.S:594
> ---[ end trace 0000000000000000 ]---