Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 5 Mar 2020 12:24:48 +0000 (UTC)
From:      "Alfredo Dal'Ava Junior" <alfredo@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r358670 - head/sys/powerpc/powerpc
Message-ID:  <202003051224.025COmDv074869@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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__



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202003051224.025COmDv074869>