From e1e025ab6a3babfd2e11cd0391d4f8316afa672c Mon Sep 17 00:00:00 2001 From: Max Wash Date: Sat, 21 Feb 2026 11:20:09 +0000 Subject: [PATCH] vm: region: memmove_v() now supports iovec arrays stored in userspace --- vm/vm-region.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/vm/vm-region.c b/vm/vm-region.c index bef0c48..04bd44b 100644 --- a/vm/vm-region.c +++ b/vm/vm-region.c @@ -876,6 +876,15 @@ kern_status_t vm_region_map_object( return KERN_INVALID_ARGUMENT; } + tracek("vm_region_map_object(%s, %zx, %s, %zx, %zx, %x, %p)", + region->vr_name, + region_offset, + object->vo_name, + object_offset, + length, + prot, + out); + struct vm_region_mapping *mapping = vm_cache_alloc(&mapping_cache, VM_NORMAL); if (!mapping) { @@ -1339,8 +1348,8 @@ extern kern_status_t vm_region_memmove_v( size_t bytes_to_move) { struct iovec_iterator src, dest; - iovec_iterator_begin(&src, src_vecs, nr_src_vecs); - iovec_iterator_begin(&dest, dest_vecs, nr_dest_vecs); + iovec_iterator_begin_user(&src, src_region, src_vecs, nr_src_vecs); + iovec_iterator_begin_user(&dest, dest_region, dest_vecs, nr_dest_vecs); iovec_iterator_seek(&src, src_offset); iovec_iterator_seek(&dest, dest_offset);