The branch main has been updated by markj:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=c8a523690b1a904344662c5834b713e5fc9e9aad

commit c8a523690b1a904344662c5834b713e5fc9e9aad
Author:     Mark Johnston <ma...@freebsd.org>
AuthorDate: 2025-07-15 00:19:51 +0000
Commit:     Mark Johnston <ma...@freebsd.org>
CommitDate: 2025-07-15 12:52:14 +0000

    i386: Avoid calling kmem_alloc_contig(M_NEVERFREED)
    
    vm_page_alloc_contig* don't handle VM_ALLOC_NOFREE.  After commit
    07297aee35f2 ("vm_page: update comments and KASSERT()s concerning page 
allocation"),
    pmap_pdpt_allocf() triggers one of the added assertions, since pdptzone
    is a NOFREE zone.
    
    Simply clear the flag when allocating a slab.  It is not worth trying to
    implement support for the NOFREE allocator here.
    
    Reported by:    Jenkins
    Reviewed by:    alc, kib
    Differential Revision:  https://reviews.freebsd.org/D51311
---
 sys/i386/i386/pmap.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/sys/i386/i386/pmap.c b/sys/i386/i386/pmap.c
index 5065b7e61ee8..b44f5e08bbcf 100644
--- a/sys/i386/i386/pmap.c
+++ b/sys/i386/i386/pmap.c
@@ -876,14 +876,16 @@ __CONCAT(PMTYPE, init_pat)(void)
 
 #ifdef PMAP_PAE_COMP
 static void *
-pmap_pdpt_allocf(uma_zone_t zone, vm_size_t bytes, int domain, uint8_t *flags,
-    int wait)
+pmap_pdpt_allocf(uma_zone_t zone, vm_size_t bytes, int domain, uint8_t 
*sflagsp,
+    int flags)
 {
 
        /* Inform UMA that this allocator uses kernel_map/object. */
-       *flags = UMA_SLAB_KERNEL;
+       *sflagsp = UMA_SLAB_KERNEL;
+       /* contig allocations cannot be NEVERFREED */
+       flags &= ~M_NEVERFREED;
        return ((void *)kmem_alloc_contig_domainset(DOMAINSET_FIXED(domain),
-           bytes, wait, 0x0ULL, 0xffffffffULL, 1, 0, VM_MEMATTR_DEFAULT));
+           bytes, flags, 0x0ULL, 0xffffffffULL, 1, 0, VM_MEMATTR_DEFAULT));
 }
 #endif
 

Reply via email to