svn commit: r347164 - head/sys/powerpc/booke

Justin Hibbits jhibbits at FreeBSD.org
Sun May 5 20:05:51 UTC 2019


Author: jhibbits
Date: Sun May  5 20:05:50 2019
New Revision: 347164
URL: https://svnweb.freebsd.org/changeset/base/347164

Log:
  powerpc/booke: Fix size check for phys_avail in pmap bootstrap
  
  Use the nitems() macro instead of the expansion, a'la r298352.  Also, fix the
  location of this check to after initializing availmem_regions_sz, so that the
  check isn't always against 0, thus always failing (nitems(phys_avail) is always
  more than 0).

Modified:
  head/sys/powerpc/booke/pmap.c

Modified: head/sys/powerpc/booke/pmap.c
==============================================================================
--- head/sys/powerpc/booke/pmap.c	Sun May  5 19:39:32 2019	(r347163)
+++ head/sys/powerpc/booke/pmap.c	Sun May  5 20:05:50 2019	(r347164)
@@ -1843,9 +1843,6 @@ mmu_booke_bootstrap(mmu_t mmu, vm_offset_t start, vm_o
 	debugf(" kernstart   = 0x%"PRI0ptrX"\n", kernstart);
 	debugf(" kernsize    = 0x%"PRI0ptrX"\n", kernsize);
 
-	if (sizeof(phys_avail) / sizeof(phys_avail[0]) < availmem_regions_sz)
-		panic("mmu_booke_bootstrap: phys_avail too small");
-
 	/*
 	 * Remove kernel physical address range from avail regions list. Page
 	 * align all regions.  Non-page aligned memory isn't very interesting
@@ -1855,6 +1852,10 @@ mmu_booke_bootstrap(mmu_t mmu, vm_offset_t start, vm_o
 	/* Retrieve phys/avail mem regions */
 	mem_regions(&physmem_regions, &physmem_regions_sz,
 	    &availmem_regions, &availmem_regions_sz);
+
+	if (nitems(phys_avail) < availmem_regions_sz)
+		panic("mmu_booke_bootstrap: phys_avail too small");
+
 	sz = 0;
 	cnt = availmem_regions_sz;
 	debugf("processing avail regions:\n");


More information about the svn-src-head mailing list