From a59e2ed64ba07d19657b25cbedd25586a912c8ed Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 4 Feb 2024 22:33:22 +0100 Subject: vm_pages_phys: Avoid faults while we keep vm locks In principle we are actually writing to the allocated area outside of the vm lock, but better be safe in case somebody changes things. --- vm/vm_user.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'vm/vm_user.c') diff --git a/vm/vm_user.c b/vm/vm_user.c index 1a0ec802..868230a3 100644 --- a/vm/vm_user.c +++ b/vm/vm_user.c @@ -728,8 +728,9 @@ kern_return_t vm_pages_phys( if (*countp < count) { vm_offset_t allocated; - kr = kmem_alloc_pageable(ipc_kernel_map, &allocated, - count * sizeof(pagesp[0])); + /* Avoid faults while we keep vm locks */ + kr = kmem_alloc(ipc_kernel_map, &allocated, + count * sizeof(pagesp[0])); if (kr != KERN_SUCCESS) return KERN_RESOURCE_SHORTAGE; pagesp = (rpc_phys_addr_array_t) allocated; -- cgit v1.2.3