As recently pointed out by jmatthew@ these need the lock as well, ok?
Index: uvm/uvm_km.c
===================================================================
RCS file: /cvs/src/sys/uvm/uvm_km.c,v
retrieving revision 1.137
diff -u -p -r1.137 uvm_km.c
--- uvm/uvm_km.c 23 May 2020 06:15:09 -0000 1.137
+++ uvm/uvm_km.c 1 Dec 2020 14:00:38 -0000
@@ -291,7 +291,9 @@ uvm_km_pgremove_intrsafe(vaddr_t start,
pg = PHYS_TO_VM_PAGE(pa);
if (pg == NULL)
panic("uvm_km_pgremove_intrsafe: no page");
+ uvm_lock_pageq();
uvm_pagefree(pg);
+ uvm_unlock_pageq();
}
}
@@ -799,7 +801,9 @@ uvm_km_doputpage(struct uvm_km_free_page
if (freeva)
uvm_unmap(kernel_map, va, va + PAGE_SIZE);
+ uvm_lock_pageq();
uvm_pagefree(pg);
+ uvm_unlock_pageq();
return (nextfp);
}
#endif /* !__HAVE_PMAP_DIRECT */