svn commit: r328116 - head/sys/amd64/amd64

Konstantin Belousov kib at FreeBSD.org
Thu Jan 18 11:01:42 UTC 2018


Author: kib
Date: Thu Jan 18 11:01:41 2018
New Revision: 328116
URL: https://svnweb.freebsd.org/changeset/base/328116

Log:
  Remove the 'last' argument from the pmap_pti_free_page().
  
  It is in fact unused.
  
  Noted and reviewed by:	markj
  Sponsored by:	The FreeBSD Foundation
  MFC after:	13 days

Modified:
  head/sys/amd64/amd64/pmap.c

Modified: head/sys/amd64/amd64/pmap.c
==============================================================================
--- head/sys/amd64/amd64/pmap.c	Thu Jan 18 10:52:31 2018	(r328115)
+++ head/sys/amd64/amd64/pmap.c	Thu Jan 18 11:01:41 2018	(r328116)
@@ -7550,17 +7550,16 @@ pmap_pti_alloc_page(void)
 }
 
 static bool
-pmap_pti_free_page(vm_page_t m, bool last)
+pmap_pti_free_page(vm_page_t m)
 {
 
+	KASSERT(m->wire_count > 0, ("page %p not wired", m));
 	m->wire_count--;
-	if (m->wire_count == 0 || last) {
-		KASSERT(m->wire_count == 0, ("page %p wired", m));
-		atomic_subtract_int(&vm_cnt.v_wire_count, 1);
-		vm_page_free_zero(m);
-		return (true);
-	}
-	return (false);
+	if (m->wire_count != 0)
+		return (false);
+	atomic_subtract_int(&vm_cnt.v_wire_count, 1);
+	vm_page_free_zero(m);
+	return (true);
 }
 
 extern char kernphys[], etext[];
@@ -7626,7 +7625,7 @@ pmap_pti_pdpe(vm_offset_t va)
 			panic("pml4 alloc after finalization\n");
 		m = pmap_pti_alloc_page();
 		if (*pml4e != 0) {
-			pmap_pti_free_page(m, true);
+			pmap_pti_free_page(m);
 			mphys = *pml4e & ~PAGE_MASK;
 		} else {
 			mphys = VM_PAGE_TO_PHYS(m);
@@ -7658,7 +7657,7 @@ pmap_pti_unwire_pde(void *pde, bool only_ref)
 	m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((uintptr_t)pde));
 	MPASS(m->wire_count > 0);
 	MPASS(only_ref || m->wire_count > 1);
-	pmap_pti_free_page(m, false);
+	pmap_pti_free_page(m);
 }
 
 static void
@@ -7670,7 +7669,7 @@ pmap_pti_unwire_pte(void *pte, vm_offset_t va)
 	VM_OBJECT_ASSERT_WLOCKED(pti_obj);
 	m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((uintptr_t)pte));
 	MPASS(m->wire_count > 0);
-	if (pmap_pti_free_page(m, false)) {
+	if (pmap_pti_free_page(m)) {
 		pde = pmap_pti_pde(va);
 		MPASS((*pde & (X86_PG_PS | X86_PG_V)) == X86_PG_V);
 		*pde = 0;
@@ -7693,7 +7692,7 @@ pmap_pti_pde(vm_offset_t va)
 	if (*pdpe == 0) {
 		m = pmap_pti_alloc_page();
 		if (*pdpe != 0) {
-			pmap_pti_free_page(m, true);
+			pmap_pti_free_page(m);
 			MPASS((*pdpe & X86_PG_PS) == 0);
 			mphys = *pdpe & ~PAGE_MASK;
 		} else {
@@ -7729,7 +7728,7 @@ pmap_pti_pte(vm_offset_t va, bool *unwire_pde)
 	if (*pde == 0) {
 		m = pmap_pti_alloc_page();
 		if (*pde != 0) {
-			pmap_pti_free_page(m, true);
+			pmap_pti_free_page(m);
 			MPASS((*pde & X86_PG_PS) == 0);
 			mphys = *pde & ~(PAGE_MASK | pg_nx);
 		} else {


More information about the svn-src-all mailing list