Author: alfredo
Date: Thu Mar  5 12:24:48 2020
New Revision: 358670
URL: https://svnweb.freebsd.org/changeset/base/358670

Log:
  [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

Modified:
  head/sys/powerpc/powerpc/uma_machdep.c

Modified: head/sys/powerpc/powerpc/uma_machdep.c
==============================================================================
--- head/sys/powerpc/powerpc/uma_machdep.c      Thu Mar  5 10:52:16 2020        
(r358669)
+++ head/sys/powerpc/powerpc/uma_machdep.c      Thu Mar  5 12:24:48 2020        
(r358670)
@@ -95,14 +95,13 @@ uma_small_free(void *mem, vm_size_t size, u_int8_t fla
 {
        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__
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to