diff options
author | alc <alc@FreeBSD.org> | 2002-06-23 18:07:40 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2002-06-23 18:07:40 +0000 |
commit | 1801abed32d2b86624b948cc3c0a8b96c3226df7 (patch) | |
tree | 73416ffdd4166930707f5eda554d6a95f854025b /sys/vm/vm_kern.c | |
parent | 8577d3fa572c66eefc1fa1cf4492e8230fa0b937 (diff) | |
download | FreeBSD-src-1801abed32d2b86624b948cc3c0a8b96c3226df7.zip FreeBSD-src-1801abed32d2b86624b948cc3c0a8b96c3226df7.tar.gz |
o Remove GIANT_REQUIRED from kmem_alloc_pageable(), kmem_alloc_nofault(),
and kmem_free(). (Annotate as MPSAFE.)
o Remove incorrect casts from kmem_alloc_pageable() and kmem_alloc_nofault().
Diffstat (limited to 'sys/vm/vm_kern.c')
-rw-r--r-- | sys/vm/vm_kern.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/sys/vm/vm_kern.c b/sys/vm/vm_kern.c index 4219181..8da9d44 100644 --- a/sys/vm/vm_kern.c +++ b/sys/vm/vm_kern.c @@ -96,6 +96,8 @@ vm_map_t buffer_map=0; * * Allocate pageable memory to the kernel's address map. * "map" must be kernel_map or a submap of kernel_map. + * + * MPSAFE */ vm_offset_t kmem_alloc_pageable(map, size) @@ -105,11 +107,9 @@ kmem_alloc_pageable(map, size) vm_offset_t addr; int result; - GIANT_REQUIRED; - size = round_page(size); addr = vm_map_min(map); - result = vm_map_find(map, NULL, (vm_offset_t) 0, + result = vm_map_find(map, NULL, 0, &addr, size, TRUE, VM_PROT_ALL, VM_PROT_ALL, 0); if (result != KERN_SUCCESS) { return (0); @@ -121,6 +121,8 @@ kmem_alloc_pageable(map, size) * kmem_alloc_nofault: * * Same as kmem_alloc_pageable, except that it create a nofault entry. + * + * MPSAFE */ vm_offset_t kmem_alloc_nofault(map, size) @@ -130,11 +132,9 @@ kmem_alloc_nofault(map, size) vm_offset_t addr; int result; - GIANT_REQUIRED; - size = round_page(size); addr = vm_map_min(map); - result = vm_map_find(map, NULL, (vm_offset_t) 0, + result = vm_map_find(map, NULL, 0, &addr, size, TRUE, VM_PROT_ALL, VM_PROT_ALL, MAP_NOFAULT); if (result != KERN_SUCCESS) { return (0); @@ -225,6 +225,8 @@ kmem_alloc(map, size) * associated with that region. * * This routine may not block on kernel maps. + * + * MPSAFE */ void kmem_free(map, addr, size) @@ -232,7 +234,6 @@ kmem_free(map, addr, size) vm_offset_t addr; vm_size_t size; { - GIANT_REQUIRED; (void) vm_map_remove(map, trunc_page(addr), round_page(addr + size)); } |