============================= [ BUG: Invalid wait context ] 6.13.0-syzkaller-07259-g0f8e26b38d7a #0 Not tainted ----------------------------- syz.2.3194/10480 is trying to lock: ffff00007fc1ffd8 (&zone->lock){-.-.}-{3:3}, at: rmqueue_bulk mm/page_alloc.c:2309 [inline] ffff00007fc1ffd8 (&zone->lock){-.-.}-{3:3}, at: __rmqueue_pcplist+0x384/0x1174 mm/page_alloc.c:3003 other info that might help us debug this: context-{2:2} 5 locks held by syz.2.3194/10480: #0: ffff000014dbc5d0 (&mm->mmap_lock){++++}-{4:4}, at: mmap_read_lock include/linux/mmap_lock.h:190 [inline] #0: ffff000014dbc5d0 (&mm->mmap_lock){++++}-{4:4}, at: exit_mmap+0xe8/0x9d0 mm/mmap.c:1656 #1: ffff800086fdb220 (rcu_read_lock){....}-{1:3}, at: ___pte_offset_map+0x0/0x290 mm/pgtable-generic.c:253 #2: ffff000013edb558 (ptlock_ptr(ptdesc)){+.+.}-{3:3}, at: spin_lock include/linux/spinlock.h:351 [inline] #2: ffff000013edb558 (ptlock_ptr(ptdesc)){+.+.}-{3:3}, at: __pte_offset_map_lock+0x118/0x2ec mm/pgtable-generic.c:402 #3: ffff800086fdb220 (rcu_read_lock){....}-{1:3}, at: page_ext_get+0x0/0x234 mm/page_ext.c:506 #4: ffff00006a16c658 (&pcp->lock){+.+.}-{3:3}, at: spin_trylock include/linux/spinlock.h:361 [inline] #4: ffff00006a16c658 (&pcp->lock){+.+.}-{3:3}, at: rmqueue_pcplist mm/page_alloc.c:3032 [inline] #4: ffff00006a16c658 (&pcp->lock){+.+.}-{3:3}, at: rmqueue mm/page_alloc.c:3076 [inline] #4: ffff00006a16c658 (&pcp->lock){+.+.}-{3:3}, at: get_page_from_freelist+0x428/0x222c mm/page_alloc.c:3473 stack backtrace: CPU: 1 UID: 0 PID: 10480 Comm: syz.2.3194 Not tainted 6.13.0-syzkaller-07259-g0f8e26b38d7a #0 Hardware name: linux,dummy-virt (DT) Call trace: show_stack+0x18/0x24 arch/arm64/kernel/stacktrace.c:466 (C) __dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0xa4/0xf4 lib/dump_stack.c:120 dump_stack+0x1c/0x28 lib/dump_stack.c:129 print_lock_invalid_wait_context kernel/locking/lockdep.c:4828 [inline] check_wait_context kernel/locking/lockdep.c:4900 [inline] __lock_acquire+0x1514/0x6604 kernel/locking/lockdep.c:5178 lock_acquire kernel/locking/lockdep.c:5851 [inline] lock_acquire+0x450/0x76c kernel/locking/lockdep.c:5816 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0x58/0x80 kernel/locking/spinlock.c:162 rmqueue_bulk mm/page_alloc.c:2309 [inline] __rmqueue_pcplist+0x384/0x1174 mm/page_alloc.c:3003 rmqueue_pcplist mm/page_alloc.c:3045 [inline] rmqueue mm/page_alloc.c:3076 [inline] get_page_from_freelist+0x4a0/0x222c mm/page_alloc.c:3473 __alloc_pages_noprof+0x1b4/0x20f0 mm/page_alloc.c:4753 alloc_pages_mpol_noprof+0x104/0x494 mm/mempolicy.c:2269 alloc_pages_noprof+0x178/0x1ec mm/mempolicy.c:2349 stack_depot_save_flags+0x2b4/0xa24 lib/stackdepot.c:627 kasan_save_stack+0x50/0x64 mm/kasan/common.c:48 __kasan_record_aux_stack+0xa0/0xb8 mm/kasan/generic.c:544 kasan_record_aux_stack+0x14/0x20 mm/kasan/generic.c:549 task_work_add+0x9c/0x35c kernel/task_work.c:77 __run_posix_cpu_timers kernel/time/posix-cpu-timers.c:1223 [inline] run_posix_cpu_timers+0x520/0x814 kernel/time/posix-cpu-timers.c:1422 update_process_times+0x16c/0x448 kernel/time/timer.c:2522 tick_sched_handle kernel/time/tick-sched.c:276 [inline] tick_nohz_handler+0x198/0x40c kernel/time/tick-sched.c:297 __run_hrtimer kernel/time/hrtimer.c:1738 [inline] __hrtimer_run_queues+0x554/0xb3c kernel/time/hrtimer.c:1802 hrtimer_interrupt+0x2a0/0x768 kernel/time/hrtimer.c:1864 timer_handler drivers/clocksource/arm_arch_timer.c:674 [inline] arch_timer_handler_phys+0x40/0x6c drivers/clocksource/arm_arch_timer.c:692 handle_percpu_devid_irq+0x19c/0x30c kernel/irq/chip.c:942 generic_handle_irq_desc include/linux/irqdesc.h:173 [inline] handle_irq_desc+0xd0/0x110 kernel/irq/irqdesc.c:714 generic_handle_domain_irq+0x1c/0x28 kernel/irq/irqdesc.c:770 gic_handle_irq+0x54/0x184 drivers/irqchip/irq-gic.c:370 call_on_irq_stack+0x24/0x4c arch/arm64/kernel/entry.S:891 do_interrupt_handler+0x12c/0x150 arch/arm64/kernel/entry-common.c:310 __el1_irq arch/arm64/kernel/entry-common.c:560 [inline] el1_interrupt+0x34/0x54 arch/arm64/kernel/entry-common.c:575 el1h_64_irq_handler+0x18/0x24 arch/arm64/kernel/entry-common.c:580 el1h_64_irq+0x6c/0x70 arch/arm64/kernel/entry.S:596 __daif_local_irq_restore arch/arm64/include/asm/irqflags.h:175 [inline] (P) arch_local_irq_restore arch/arm64/include/asm/irqflags.h:195 [inline] (P) lock_acquire kernel/locking/lockdep.c:5854 [inline] (P) lock_acquire+0x4a0/0x76c kernel/locking/lockdep.c:5816 (P) rcu_lock_acquire include/linux/rcupdate.h:337 [inline] rcu_read_lock include/linux/rcupdate.h:849 [inline] page_ext_get+0x4c/0x234 mm/page_ext.c:525 page_table_check_clear.part.0+0x54/0x2d0 mm/page_table_check.c:74 page_table_check_clear mm/page_table_check.c:70 [inline] __page_table_check_pte_clear+0x238/0x424 mm/page_table_check.c:169 page_table_check_pte_clear include/linux/page_table_check.h:49 [inline] __ptep_get_and_clear arch/arm64/include/asm/pgtable.h:1284 [inline] __clear_full_ptes arch/arm64/include/asm/pgtable.h:1293 [inline] clear_full_ptes arch/arm64/include/asm/pgtable.h:1693 [inline] zap_present_folio_ptes mm/memory.c:1516 [inline] zap_present_ptes mm/memory.c:1586 [inline] zap_pte_range mm/memory.c:1628 [inline] zap_pmd_range mm/memory.c:1754 [inline] zap_pud_range mm/memory.c:1783 [inline] zap_p4d_range mm/memory.c:1804 [inline] unmap_page_range+0xec8/0x2270 mm/memory.c:1825 unmap_single_vma.constprop.0+0xb4/0x188 mm/memory.c:1871 unmap_vmas+0x194/0x318 mm/memory.c:1915 exit_mmap+0x138/0x9d0 mm/mmap.c:1672 __mmput+0xa4/0x304 kernel/fork.c:1345 mmput+0x88/0x98 kernel/fork.c:1367 exit_mm kernel/exit.c:570 [inline] do_exit+0x6d0/0x2040 kernel/exit.c:925 do_group_exit+0xa4/0x208 kernel/exit.c:1087 get_signal+0x1a60/0x1b08 kernel/signal.c:3036 do_signal+0x1f4/0x620 arch/arm64/kernel/signal.c:1658 do_notify_resume+0x18c/0x258 arch/arm64/kernel/entry-common.c:148 exit_to_user_mode_prepare arch/arm64/kernel/entry-common.c:169 [inline] exit_to_user_mode arch/arm64/kernel/entry-common.c:178 [inline] el0_svc+0x100/0x180 arch/arm64/kernel/entry-common.c:745 el0t_64_sync_handler+0x10c/0x138 arch/arm64/kernel/entry-common.c:762 el0t_64_sync+0x198/0x19c arch/arm64/kernel/entry.S:600