svn commit: r338537 - head/sys/arm/arm

Mark Johnston markj at FreeBSD.org
Sat Sep 8 21:51:48 UTC 2018


Author: markj
Date: Sat Sep  8 21:51:47 2018
New Revision: 338537
URL: https://svnweb.freebsd.org/changeset/base/338537

Log:
  Bump MAX_HWCNT and MAX_EXCNT.
  
  These limits are hit on the ThunderX.  Also make
  arm_physmem_exclude_region() panic rather than fail silently if the
  limit on excluded regions is reached.
  
  PR:		231064
  Reviewed by:	andrew
  Approved by:	re (kib)
  MFC after:	1 week
  Sponsored by:	The FreeBSD Foundation
  Differential Revision:	https://reviews.freebsd.org/D17073

Modified:
  head/sys/arm/arm/physmem.c

Modified: head/sys/arm/arm/physmem.c
==============================================================================
--- head/sys/arm/arm/physmem.c	Sat Sep  8 21:49:43 2018	(r338536)
+++ head/sys/arm/arm/physmem.c	Sat Sep  8 21:51:47 2018	(r338537)
@@ -48,8 +48,8 @@ __FBSDID("$FreeBSD$");
  * that can be allocated, or both, depending on the exclusion flags associated
  * with the region.
  */
-#define	MAX_HWCNT	10
-#define	MAX_EXCNT	10
+#define	MAX_HWCNT	16
+#define	MAX_EXCNT	16
 
 #if defined(__arm__)
 #define	MAX_PHYS_ADDR	0xFFFFFFFFull
@@ -359,7 +359,8 @@ arm_physmem_hardware_region(uint64_t pa, uint64_t sz)
 /*
  * Add an exclusion region.
  */
-void arm_physmem_exclude_region(vm_paddr_t pa, vm_size_t sz, uint32_t exflags)
+void
+arm_physmem_exclude_region(vm_paddr_t pa, vm_size_t sz, uint32_t exflags)
 {
 	vm_offset_t adj;
 
@@ -371,8 +372,9 @@ void arm_physmem_exclude_region(vm_paddr_t pa, vm_size
 	pa  = trunc_page(pa);
 	sz  = round_page(sz + adj);
 
-	if (excnt < nitems(exregions))
-		excnt = insert_region(exregions, excnt, pa, sz, exflags);
+	if (excnt >= nitems(exregions))
+		panic("failed to exclude region %#lx-%#lx", pa, pa + sz);
+	excnt = insert_region(exregions, excnt, pa, sz, exflags);
 }
 
 size_t


More information about the svn-src-head mailing list