opnsense-src/sys/vm
Mark Johnston 9a1b330335 vm_page: Clear VM_ALLOC_NOCREAT in vm_page_grab_pflags()
Otherwise vm_page_grab_zero_partial() and vm_page_grab_pages() can pass
it to vm_page_alloc_*(), which results in an assertion failure since
that flag is meaningless when allocating a page:

panic: invalid request 0x8400
cpuid = 0
time = 1754074745
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x49/frame 0xfffffe00542859c0
vpanic() at vpanic+0x1ea/frame 0xfffffe0054285b00
panic() at panic+0x43/frame 0xfffffe0054285b60
vm_page_alloc_domain_iter() at vm_page_alloc_domain_iter+0x720/frame 0xfffffe0054285be0
vm_page_grab_zero_partial() at vm_page_grab_zero_partial+0x1d4/frame 0xfffffe0054285c90
shm_fspacectl() at shm_fspacectl+0x1cd/frame 0xfffffe0054285d30
kern_fspacectl() at kern_fspacectl+0x49f/frame 0xfffffe0054285db0
sys_fspacectl() at sys_fspacectl+0x5b/frame 0xfffffe0054285e00
amd64_syscall() at amd64_syscall+0x29c/frame 0xfffffe0054285f30
fast_syscall_common() at fast_syscall_common+0xf8/frame 0xfffffe0054285f30

Reported by:	syzkaller
Reviewed by:	alc, kib
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D51692
2025-08-04 14:27:26 +00:00
..
_vm_phys.h Revert "subr_pctrie: use ilog2(x) instead of fls(x)-1" 2024-06-03 13:07:42 -05:00
_vm_radix.h radix_trie: have vm_radix use pctrie code 2023-09-12 02:42:38 -05:00
device_pager.c device_pager: use VM_RADIX_FOREACH 2025-04-19 17:16:45 -05:00
memguard.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
memguard.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
phys_pager.c vm_page: drop mpred param from insert_lookup 2025-05-07 16:40:51 -05:00
pmap.h pmap_growkernel(): do not panic immediately, optionally return the error 2025-06-20 01:25:56 +03:00
redzone.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
redzone.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
sg_pager.c Add sysctl kern.proc.kqueue 2025-03-13 18:09:35 +02:00
swap_pager.c vm_pageout: Scan inactive dirty pages less aggressively 2025-08-01 20:15:28 +00:00
swap_pager.h vm_pageout: Scan inactive dirty pages less aggressively 2025-08-01 20:15:28 +00:00
uma.h Introduce the UMA_ZONE_NOTRIM uma zone type 2025-01-15 12:23:00 -05:00
uma_align_mask.h uma: Make the cache alignment mask unsigned 2023-11-02 09:30:03 -04:00
uma_core.c uma_core: change listq to plinks.q in temp lists 2025-05-01 01:43:49 -05:00
uma_dbg.c Fix build on powerpc after previous commit. 2023-11-09 21:21:47 -05:00
uma_dbg.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
uma_int.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
vm.h vm: Remove kernel stack swapping support, part 2 2024-07-29 01:38:39 +00:00
vm_domainset.c vm_domainset: Print correct function in KASSERT()/panic() 2025-07-13 16:15:22 +09:00
vm_domainset.h vm_page: reset iterator after domainset drops lock 2025-05-18 13:09:00 -05:00
vm_dumpset.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
vm_extern.h vm: Remove kernel stack swapping support, part 8 2024-07-29 01:43:59 +00:00
vm_fault.c vm_fault: drop never-true busy_sleep test 2025-07-06 15:46:00 -05:00
vm_glue.c vm_page: reset iterator after domainset drops lock 2025-05-18 13:09:00 -05:00
vm_init.c vm: Assert that pagesizes[] is sorted 2024-08-04 14:53:15 -05:00
vm_kern.c amd64: add kva_layout 2025-07-15 01:03:28 +03:00
vm_kern.h vm: Retire kmem_arena 2024-07-24 14:31:40 -05:00
vm_map.c pmap_growkernel(): do not panic immediately, optionally return the error 2025-06-20 01:25:56 +03:00
vm_map.h vm/vm_map.h: drop vm_flags_t 2024-12-09 05:27:44 +02:00
vm_meter.c vm_meter: Fix laundry accounting 2024-10-22 12:48:43 +00:00
vm_mmap.c Import the Hardware Trace (HWT) framework. 2025-07-03 15:48:34 +01:00
vm_object.c Reset kvo_laundry to prevent it being cumulative 2025-06-25 13:39:15 +00:00
vm_object.h vm_object: drop memq field 2025-05-06 11:01:51 -05:00
vm_page.c vm_page: Clear VM_ALLOC_NOCREAT in vm_page_grab_pflags() 2025-08-04 14:27:26 +00:00
vm_page.h vm_page: update comments and KASSERT()s concerning page allocation 2025-06-25 14:09:49 -05:00
vm_pageout.c vm_pageout: Scan inactive dirty pages less aggressively 2025-08-01 20:15:28 +00:00
vm_pageout.h vm_pageout: reduce number of flush() params 2025-05-30 16:07:39 -05:00
vm_pagequeue.h vm_pageout: Remove a volatile qualifier from some vm_domain members 2025-07-15 15:16:40 +00:00
vm_pager.c pbuf_ctor(): Stop using LK_NOWAIT, use LK_NOWITNESS 2024-05-26 10:20:52 -07:00
vm_pager.h device_pager: Add cdev_pager_get_path to retrieve the "path" for an object 2025-03-27 16:44:33 -04:00
vm_param.h vm: retire vm_page_lock() 2025-06-11 15:19:41 -05:00
vm_phys.c vm_page: Retire its listq field 2025-06-08 13:35:56 -05:00
vm_phys.h vm_phys: reduce touching of page->pool fields 2025-01-29 03:13:17 -06:00
vm_radix.c uma: Deduplicate uma_small_alloc 2024-05-25 19:24:46 +02:00
vm_radix.h vm_page_grab_pages: fetch page ranges 2025-05-08 22:51:58 -05:00
vm_reserv.c vm_page: drop mpred param from insert_lookup 2025-05-07 16:40:51 -05:00
vm_reserv.h vm_page: drop mpred param from insert_lookup 2025-05-07 16:40:51 -05:00
vm_swapout.c vm_swapout: use VM_RADIX_FOREACH 2025-04-18 14:48:55 -05:00
vm_unix.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
vnode_pager.c vnode_pager: Remove uses of DEBUG_VFS_LOCKS 2025-08-03 21:52:34 +00:00
vnode_pager.h Add vnode_pager_clean_{a,}sync(9) 2024-01-11 18:44:53 +02:00