vkernel - Make copyin/copyout mpsafe
authorMatthew Dillon <dillon@apollo.backplane.com>
Sat, 28 Aug 2010 02:41:34 +0000 (19:41 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Sat, 28 Aug 2010 02:41:34 +0000 (19:41 -0700)
* copyin and copyout are mpsafe now that the VM system is locked up,
  so remove the get_mplock()/rel_mplock() wrapper.

sys/platform/vkernel/platform/copyio.c
sys/platform/vkernel64/platform/copyio.c

index 9bea25e..9c8de1b 100644 (file)
@@ -42,8 +42,6 @@
 #include <sys/stat.h>
 #include <sys/mman.h>
 
-#include <sys/mplock2.h>
-
 /*
  * 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);
 }
  
index b6b3dc6..b83e169 100644 (file)
@@ -42,8 +42,6 @@
 #include <sys/stat.h>
 #include <sys/mman.h>
 
-#include <sys/mplock2.h>
-
 /*
  * 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);
 }