OpenBSD cvs log

created 2022-11-06T04:07:04Z
begin 2022-11-04T00:00:00Z
end 2022-11-05T00:00:00Z
path src/sys
commits 2

date 2022-11-04T09:36:44Z
author mpi
files src/sys/uvm/uvm_addr.c log diff annotate
src/sys/uvm/uvm_fault.c log diff annotate
src/sys/uvm/uvm_map.c log diff annotate
src/sys/uvm/uvm_map.h log diff annotate
message Assert the VM map lock is held in function used by mmap/mprotect/munmap.

Also grab the lock in uvm_map_teardown() and uvm_map_deallocate() to
satisfy the assertions. Grabbing the lock there shouldn't be strictly
necessary, because no other reference to the map should exist when the
reaper is holding it, but it doesn't hurt and makes our life easier.

Inputs & tests from Ivo van der Sangen, tb@, gnezdo@, kn@

kettenis@ and tb@ agree with the direction, ok kn@

date 2022-11-04T16:49:31Z
author kettenis
files src/sys/arch/amd64/amd64/efi_machdep.c log diff annotate
src/sys/arch/amd64/amd64/locore.S log diff annotate
src/sys/arch/amd64/amd64/trap.c log diff annotate
message EFI firmware has bugs which may mean that calling EFI runtime services will
fault because it does memory accesses outside of the regions it told us to
map. Try to mitigate this by installing a fault handler (using the
pcb_onfault mechanism) and bail out using longjmp(9) if we encounter a
page fault while executing an EFI runtime services call.

Since some firmware bugs result in us executing code that isn't mapped,
make kpageflttrap() handle execution faults as well as data faults.

ok guenther@