diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2025-02-12 01:54:25 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2025-02-12 01:54:25 +0100 |
commit | aa8a47f7b9da61e689b0c4bb37e7a2a84ece6dac (patch) | |
tree | db06ee040cc25bc88ee860d471fb111423476dae /vm/vm_object.c | |
parent | 98794c61f45a41144af3c39498444d215b425e62 (diff) |
vm: Add missing locking
Diffstat (limited to 'vm/vm_object.c')
-rw-r--r-- | vm/vm_object.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/vm/vm_object.c b/vm/vm_object.c index c238cce4..9a46149b 100644 --- a/vm/vm_object.c +++ b/vm/vm_object.c @@ -1066,10 +1066,14 @@ kern_return_t vm_object_copy_slowly( vm_page_t new_page; vm_fault_return_t result; + vm_object_lock(new_object); while ((new_page = vm_page_alloc(new_object, new_offset)) == VM_PAGE_NULL) { + vm_object_unlock(new_object); VM_PAGE_WAIT((void (*)()) 0); + vm_object_lock(new_object); } + vm_object_unlock(new_object); do { vm_prot_t prot = VM_PROT_READ; |