summaryrefslogtreecommitdiffstats
path: root/sys/arm/arm/physmem.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arm/arm/physmem.c')
-rw-r--r--sys/arm/arm/physmem.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/arm/arm/physmem.c b/sys/arm/arm/physmem.c
index 566ab85..999d38c 100644
--- a/sys/arm/arm/physmem.c
+++ b/sys/arm/arm/physmem.c
@@ -292,9 +292,13 @@ arm_physmem_hardware_region(vm_paddr_t pa, vm_size_t sz)
* than leave some folks with an unusable system while we investigate.
*/
if (pa == 0) {
+ if (sz <= PAGE_SIZE)
+ return;
pa = PAGE_SIZE;
sz -= PAGE_SIZE;
} else if (pa + sz == 0) {
+ if (sz <= 1024 * 1024)
+ return;
sz -= 1024 * 1024;
}
@@ -306,7 +310,7 @@ arm_physmem_hardware_region(vm_paddr_t pa, vm_size_t sz)
pa = round_page(pa);
sz = trunc_page(sz - adj);
- if (hwcnt < nitems(hwregions))
+ if (sz > 0 && hwcnt < nitems(hwregions))
insert_region(hwregions, hwcnt++, pa, sz, 0);
}
OpenPOWER on IntegriCloud