[PowerPC64] fix uma_small_free panic

Fix panic "Freeing UMA block at 0xn with no associated page".
Also replaces pmap_remove call by pmap_kremove, for symmetry.

Reviewed by:	jhibbits
Approved by:	jhibbits (mentor)
Differential Revision:	https://reviews.freebsd.org/D23931
This commit is contained in:
Alfredo Dal'Ava Junior 2020-03-05 12:24:48 +00:00
parent 0c4be71a59
commit 5554f4cc45

View File

@ -95,14 +95,13 @@ uma_small_free(void *mem, vm_size_t size, u_int8_t flags)
{
vm_page_t m;
if (!hw_direct_map)
pmap_remove(kernel_pmap,(vm_offset_t)mem,
(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);
else {
m = PHYS_TO_VM_PAGE(pmap_kextract((vm_offset_t)mem));
pmap_kremove((vm_offset_t)mem);
}
KASSERT(m != NULL,
("Freeing UMA block at %p with no associated page", mem));
#ifdef __powerpc64__