Index: sys/arch/amd64/conf/GENERIC.MP =================================================================== RCS file: /mount/openbsd/cvs/src/sys/arch/amd64/conf/GENERIC.MP,v diff -u -p -u -p -r1.16 GENERIC.MP --- sys/arch/amd64/conf/GENERIC.MP 9 Feb 2021 14:06:19 -0000 1.16 +++ sys/arch/amd64/conf/GENERIC.MP 17 Mar 2025 13:38:58 -0000 @@ -4,6 +4,6 @@ include "arch/amd64/conf/GENERIC" option MULTIPROCESSOR #option MP_LOCKDEBUG -#option WITNESS +option WITNESS cpu* at mainbus? Index: sys/arch/arm64/conf/GENERIC.MP =================================================================== RCS file: /mount/openbsd/cvs/src/sys/arch/arm64/conf/GENERIC.MP,v diff -u -p -u -p -r1.5 GENERIC.MP --- sys/arch/arm64/conf/GENERIC.MP 1 Jul 2018 21:05:07 -0000 1.5 +++ sys/arch/arm64/conf/GENERIC.MP 17 Mar 2025 13:38:58 -0000 @@ -4,6 +4,6 @@ include "arch/arm64/conf/GENERIC" option MULTIPROCESSOR #option MP_LOCKDEBUG -#option WITNESS +option WITNESS cpu* at mainbus? Index: sys/arch/i386/conf/GENERIC.MP =================================================================== RCS file: /mount/openbsd/cvs/src/sys/arch/i386/conf/GENERIC.MP,v diff -u -p -u -p -r1.11 GENERIC.MP --- sys/arch/i386/conf/GENERIC.MP 3 Jun 2018 05:18:33 -0000 1.11 +++ sys/arch/i386/conf/GENERIC.MP 17 Mar 2025 13:38:58 -0000 @@ -7,6 +7,6 @@ include "arch/i386/conf/GENERIC" option MULTIPROCESSOR # Multiple processor support #option MP_LOCKDEBUG -#option WITNESS +option WITNESS cpu* at mainbus? Index: sys/arch/macppc/conf/GENERIC.MP =================================================================== RCS file: /mount/openbsd/cvs/src/sys/arch/macppc/conf/GENERIC.MP,v diff -u -p -u -p -r1.2 GENERIC.MP --- sys/arch/macppc/conf/GENERIC.MP 15 Apr 2020 08:09:33 -0000 1.2 +++ sys/arch/macppc/conf/GENERIC.MP 17 Mar 2025 13:38:58 -0000 @@ -4,6 +4,6 @@ include "arch/macppc/conf/GENERIC" option MULTIPROCESSOR #option MP_LOCKDEBUG -#option WITNESS +option WITNESS cpu* at mainbus? Index: sys/arch/powerpc64/conf/GENERIC.MP =================================================================== RCS file: /mount/openbsd/cvs/src/sys/arch/powerpc64/conf/GENERIC.MP,v diff -u -p -u -p -r1.1 GENERIC.MP --- sys/arch/powerpc64/conf/GENERIC.MP 21 Jul 2020 21:38:31 -0000 1.1 +++ sys/arch/powerpc64/conf/GENERIC.MP 17 Mar 2025 13:38:58 -0000 @@ -4,6 +4,6 @@ include "arch/powerpc64/conf/GENERIC" option MULTIPROCESSOR #option MP_LOCKDEBUG -#option WITNESS +option WITNESS cpu* at mainbus? Index: sys/arch/riscv64/conf/GENERIC.MP =================================================================== RCS file: /mount/openbsd/cvs/src/sys/arch/riscv64/conf/GENERIC.MP,v diff -u -p -u -p -r1.1 GENERIC.MP --- sys/arch/riscv64/conf/GENERIC.MP 29 Jun 2021 21:27:52 -0000 1.1 +++ sys/arch/riscv64/conf/GENERIC.MP 17 Mar 2025 13:38:58 -0000 @@ -4,6 +4,6 @@ include "arch/riscv64/conf/GENERIC" option MULTIPROCESSOR #option MP_LOCKDEBUG -#option WITNESS +option WITNESS cpu* at mainbus? Index: sys/uvm/uvm_fault.c =================================================================== RCS file: /mount/openbsd/cvs/src/sys/uvm/uvm_fault.c,v diff -u -p -u -p -r1.165 uvm_fault.c --- sys/uvm/uvm_fault.c 10 Mar 2025 14:13:58 -0000 1.165 +++ sys/uvm/uvm_fault.c 17 Mar 2025 13:38:52 -0000 @@ -1737,16 +1737,12 @@ uvm_fault_unwire_locked(vm_map_t map, va * find the map entry for the current address. */ KASSERT(va >= entry->start); - while (entry && va >= entry->end) { + while (va >= entry->end) { next = RBT_NEXT(uvm_map_addr, entry); + KASSERT(next != NULL && next->start <= entry->end); entry = next; } - if (entry == NULL) - return; - if (va < entry->start) - continue; - /* * lock it. */ @@ -1776,7 +1772,7 @@ uvm_fault_unwire_locked(vm_map_t map, va } if (oentry != NULL) { - uvm_map_unlock_entry(oentry); + uvm_map_unlock_entry(entry); } } Index: sys/uvm/uvm_glue.c =================================================================== RCS file: /mount/openbsd/cvs/src/sys/uvm/uvm_glue.c,v diff -u -p -u -p -r1.87 uvm_glue.c --- sys/uvm/uvm_glue.c 28 Oct 2024 08:25:32 -0000 1.87 +++ sys/uvm/uvm_glue.c 17 Mar 2025 13:38:52 -0000 @@ -114,7 +114,7 @@ uvm_vslock(struct proc *p, caddr_t addr, if (end <= start) return (EINVAL); - return uvm_fault_wire(map, start, end, access_type); + return uvm_map_pageable(map, start, end, FALSE, 0); } /* @@ -125,13 +125,14 @@ uvm_vslock(struct proc *p, caddr_t addr, void uvm_vsunlock(struct proc *p, caddr_t addr, size_t len) { + struct vm_map *map = &p->p_vmspace->vm_map; vaddr_t start, end; start = trunc_page((vaddr_t)addr); end = round_page((vaddr_t)addr + len); KASSERT(end > start); - uvm_fault_unwire(&p->p_vmspace->vm_map, start, end); + uvm_map_pageable(map, start, end, TRUE, 0); } /*