diff options
author | grehan <grehan@FreeBSD.org> | 2004-07-01 08:01:49 +0000 |
---|---|---|
committer | grehan <grehan@FreeBSD.org> | 2004-07-01 08:01:49 +0000 |
commit | e6d783678aceef9e4b0a403a1b995ec353582fa3 (patch) | |
tree | 05feeb998b7363c58a0e43c733895ffc6b909359 /sys | |
parent | 9583041d2ccbd51842e8118efe06caec898856a5 (diff) | |
download | FreeBSD-src-e6d783678aceef9e4b0a403a1b995ec353582fa3.zip FreeBSD-src-e6d783678aceef9e4b0a403a1b995ec353582fa3.tar.gz |
Modify loop test when cycling through phys_avail array. It's possible
for an OpenFirmware implementation to have a single memory region
(hello PearPC).
Diffstat (limited to 'sys')
-rw-r--r-- | sys/powerpc/aim/mmu_oea.c | 6 | ||||
-rw-r--r-- | sys/powerpc/powerpc/mmu_oea.c | 6 | ||||
-rw-r--r-- | sys/powerpc/powerpc/pmap.c | 6 |
3 files changed, 12 insertions, 6 deletions
diff --git a/sys/powerpc/aim/mmu_oea.c b/sys/powerpc/aim/mmu_oea.c index 3a32f17..98a1ce5 100644 --- a/sys/powerpc/aim/mmu_oea.c +++ b/sys/powerpc/aim/mmu_oea.c @@ -701,9 +701,11 @@ pmap_bootstrap(vm_offset_t kernelstart, vm_offset_t kernelend) if ((sz = OF_getproplen(mmu, "translations")) == -1) panic("pmap_bootstrap: can't get ofw translation count"); translations = NULL; - for (i = 0; phys_avail[i + 2] != 0; i += 2) { - if (phys_avail[i + 1] >= sz) + for (i = 0; phys_avail[i] != 0; i += 2) { + if (phys_avail[i + 1] >= sz) { translations = (struct ofw_map *)phys_avail[i]; + break; + } } if (translations == NULL) panic("pmap_bootstrap: no space to copy translations"); diff --git a/sys/powerpc/powerpc/mmu_oea.c b/sys/powerpc/powerpc/mmu_oea.c index 3a32f17..98a1ce5 100644 --- a/sys/powerpc/powerpc/mmu_oea.c +++ b/sys/powerpc/powerpc/mmu_oea.c @@ -701,9 +701,11 @@ pmap_bootstrap(vm_offset_t kernelstart, vm_offset_t kernelend) if ((sz = OF_getproplen(mmu, "translations")) == -1) panic("pmap_bootstrap: can't get ofw translation count"); translations = NULL; - for (i = 0; phys_avail[i + 2] != 0; i += 2) { - if (phys_avail[i + 1] >= sz) + for (i = 0; phys_avail[i] != 0; i += 2) { + if (phys_avail[i + 1] >= sz) { translations = (struct ofw_map *)phys_avail[i]; + break; + } } if (translations == NULL) panic("pmap_bootstrap: no space to copy translations"); diff --git a/sys/powerpc/powerpc/pmap.c b/sys/powerpc/powerpc/pmap.c index 3a32f17..98a1ce5 100644 --- a/sys/powerpc/powerpc/pmap.c +++ b/sys/powerpc/powerpc/pmap.c @@ -701,9 +701,11 @@ pmap_bootstrap(vm_offset_t kernelstart, vm_offset_t kernelend) if ((sz = OF_getproplen(mmu, "translations")) == -1) panic("pmap_bootstrap: can't get ofw translation count"); translations = NULL; - for (i = 0; phys_avail[i + 2] != 0; i += 2) { - if (phys_avail[i + 1] >= sz) + for (i = 0; phys_avail[i] != 0; i += 2) { + if (phys_avail[i + 1] >= sz) { translations = (struct ofw_map *)phys_avail[i]; + break; + } } if (translations == NULL) panic("pmap_bootstrap: no space to copy translations"); |