From: Matthew Dillon Date: Sat, 28 Aug 2010 02:41:34 +0000 (-0700) Subject: vkernel - Make copyin/copyout mpsafe X-Git-Tag: v2.9.0~385 X-Git-Url: https://gitweb.dragonflybsd.org/dragonfly.git/commitdiff_plain/a3f156de2343d3f32949a5b9032e1a872d044ef1 vkernel - Make copyin/copyout mpsafe * copyin and copyout are mpsafe now that the VM system is locked up, so remove the get_mplock()/rel_mplock() wrapper. --- diff --git a/sys/platform/vkernel/platform/copyio.c b/sys/platform/vkernel/platform/copyio.c index 9bea25e67a..9c8de1be6f 100644 --- a/sys/platform/vkernel/platform/copyio.c +++ b/sys/platform/vkernel/platform/copyio.c @@ -42,8 +42,6 @@ #include #include -#include - /* * A bcopy that works dring low level boot, before FP is working */ @@ -132,7 +130,6 @@ copyin(const void *udaddr, void *kaddr, size_t len) size_t n; error = 0; - get_mplock(); while (len) { m = vm_fault_page(&vm->vm_map, trunc_page((vm_offset_t)udaddr), VM_PROT_READ, @@ -151,7 +148,6 @@ copyin(const void *udaddr, void *kaddr, size_t len) lwbuf_free(lwb); vm_page_unhold(m); } - rel_mplock(); return (error); } @@ -170,7 +166,6 @@ copyout(const void *kaddr, void *udaddr, size_t len) size_t n; error = 0; - get_mplock(); while (len) { m = vm_fault_page(&vm->vm_map, trunc_page((vm_offset_t)udaddr), VM_PROT_READ|VM_PROT_WRITE, @@ -190,7 +185,6 @@ copyout(const void *kaddr, void *udaddr, size_t len) lwbuf_free(lwb); vm_page_unhold(m); } - rel_mplock(); return (error); } diff --git a/sys/platform/vkernel64/platform/copyio.c b/sys/platform/vkernel64/platform/copyio.c index b6b3dc6fc9..b83e169830 100644 --- a/sys/platform/vkernel64/platform/copyio.c +++ b/sys/platform/vkernel64/platform/copyio.c @@ -42,8 +42,6 @@ #include #include -#include - /* * A bcopy that works dring low level boot, before FP is working */ @@ -132,7 +130,6 @@ copyin(const void *udaddr, void *kaddr, size_t len) size_t n; error = 0; - get_mplock(); while (len) { m = vm_fault_page(&vm->vm_map, trunc_page((vm_offset_t)udaddr), VM_PROT_READ, @@ -151,7 +148,6 @@ copyin(const void *udaddr, void *kaddr, size_t len) lwbuf_free(lwb); vm_page_unhold(m); } - rel_mplock(); return (error); } @@ -170,7 +166,6 @@ copyout(const void *kaddr, void *udaddr, size_t len) size_t n; error = 0; - get_mplock(); while (len) { m = vm_fault_page(&vm->vm_map, trunc_page((vm_offset_t)udaddr), VM_PROT_READ|VM_PROT_WRITE, @@ -190,7 +185,6 @@ copyout(const void *kaddr, void *udaddr, size_t len) lwbuf_free(lwb); vm_page_unhold(m); } - rel_mplock(); return (error); }