summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcognet <cognet@FreeBSD.org>2006-10-24 23:27:52 +0000
committercognet <cognet@FreeBSD.org>2006-10-24 23:27:52 +0000
commit3c4525479ba55c7392dae57b0e2977ad9541b5cc (patch)
tree8f47cb18d1b4408f708e33d04ee03e9c8182693c
parentde0a74e0238dbb9ea885175c07d25a5c285c8382 (diff)
downloadFreeBSD-src-3c4525479ba55c7392dae57b0e2977ad9541b5cc.zip
FreeBSD-src-3c4525479ba55c7392dae57b0e2977ad9541b5cc.tar.gz
Ooops, dump_avail[i] can be 0 if the RAM starts at 0x00000000, so check that
dump_avail[i + 1] is == 0 as a stop condition instead. MFC after: 3 days
-rw-r--r--sys/arm/arm/vm_machdep.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/arm/arm/vm_machdep.c b/sys/arm/arm/vm_machdep.c
index 2401011..a445f19 100644
--- a/sys/arm/arm/vm_machdep.c
+++ b/sys/arm/arm/vm_machdep.c
@@ -465,13 +465,13 @@ arm_ptovirt(vm_paddr_t pa)
vm_offset_t addr = alloc_firstaddr;
KASSERT(alloc_firstaddr != 0, ("arm_ptovirt called to early ?"));
- for (i = 0; dump_avail[i]; i += 2) {
+ for (i = 0; dump_avail[i + 1]; i += 2) {
if (pa >= dump_avail[i] && pa < dump_avail[i + 1])
break;
addr += (dump_avail[i + 1] & L1_S_FRAME) + L1_S_SIZE -
(dump_avail[i] & L1_S_FRAME);
}
- KASSERT(dump_avail[i] != 0, ("Trying to access invalid physical address"));
+ KASSERT(dump_avail[i + 1] != 0, ("Trying to access invalid physical address"));
return (addr + (pa - (dump_avail[i] & L1_S_FRAME)));
}
@@ -487,12 +487,12 @@ arm_init_smallalloc(void)
* to be able to do a pa => va association for any address.
*/
- for (i = 0; dump_avail[i]; i+= 2) {
+ for (i = 0; dump_avail[i + 1]; i+= 2) {
to_map += (dump_avail[i + 1] & L1_S_FRAME) + L1_S_SIZE -
(dump_avail[i] & L1_S_FRAME);
}
alloc_firstaddr = mapaddr = KERNBASE - to_map;
- for (i = 0; dump_avail[i]; i+= 2) {
+ for (i = 0; dump_avail[i + 1]; i+= 2) {
vm_offset_t size = (dump_avail[i + 1] & L1_S_FRAME) +
L1_S_SIZE - (dump_avail[i] & L1_S_FRAME);
vm_offset_t did = 0;
OpenPOWER on IntegriCloud