Changeset View
Changeset View
Standalone View
Standalone View
head/sys/powerpc/powerpc/uma_machdep.c
Show First 20 Lines • Show All 88 Lines • ▼ Show 20 Lines | |||||
uma_small_free(void *mem, vm_size_t size, u_int8_t flags) | uma_small_free(void *mem, vm_size_t size, u_int8_t flags) | ||||
{ | { | ||||
vm_page_t m; | vm_page_t m; | ||||
if (!hw_direct_map) | if (!hw_direct_map) | ||||
pmap_remove(kernel_pmap,(vm_offset_t)mem, | pmap_remove(kernel_pmap,(vm_offset_t)mem, | ||||
(vm_offset_t)mem + PAGE_SIZE); | (vm_offset_t)mem + PAGE_SIZE); | ||||
if (hw_direct_map) | |||||
m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((vm_offset_t)mem)); | |||||
else | |||||
m = PHYS_TO_VM_PAGE((vm_offset_t)mem); | m = PHYS_TO_VM_PAGE((vm_offset_t)mem); | ||||
KASSERT(m != NULL, | |||||
("Freeing UMA block at %p with no associated page", mem)); | |||||
vm_page_unwire_noq(m); | vm_page_unwire_noq(m); | ||||
vm_page_free(m); | vm_page_free(m); | ||||
atomic_subtract_int(&hw_uma_mdpages, 1); | atomic_subtract_int(&hw_uma_mdpages, 1); | ||||
} | } |