summaryrefslogtreecommitdiffstats
path: root/c/src
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2009-10-16 16:12:42 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2009-10-16 16:12:42 +0000
commit79df9d04736b759aaacadf87ffbcec60920974b2 (patch)
treef15fc5ed1d9df175a6f5ff20c17f8f3515915148 /c/src
parent2009-10-16 Jennifer Averett <jennifer.averett@OARcorp.com> (diff)
downloadrtems-79df9d04736b759aaacadf87ffbcec60920974b2.tar.bz2
2009-10-16 Jennifer Averett <jennifer.averett@OARcorp.com>
* mpc6xx/mmu/bat.c: Resolved bug: It is not an overlap if the batindex being set is the batindex of the overlap.
Diffstat (limited to 'c/src')
-rw-r--r--c/src/lib/libcpu/powerpc/ChangeLog5
-rw-r--r--c/src/lib/libcpu/powerpc/mpc6xx/mmu/bat.c5
2 files changed, 8 insertions, 2 deletions
diff --git a/c/src/lib/libcpu/powerpc/ChangeLog b/c/src/lib/libcpu/powerpc/ChangeLog
index 6237343579..bcd971bb23 100644
--- a/c/src/lib/libcpu/powerpc/ChangeLog
+++ b/c/src/lib/libcpu/powerpc/ChangeLog
@@ -1,5 +1,10 @@
2009-10-16 Jennifer Averett <jennifer.averett@OARcorp.com>
+ * mpc6xx/mmu/bat.c: Resolved bug: It is not an overlap if the batindex
+ being set is the batindex of the overlap.
+
+2009-10-16 Jennifer Averett <jennifer.averett@OARcorp.com>
+
* shared/include/io.h: Backport change from extern inline to static
inline from head to avoid multiple definitions.
diff --git a/c/src/lib/libcpu/powerpc/mpc6xx/mmu/bat.c b/c/src/lib/libcpu/powerpc/mpc6xx/mmu/bat.c
index 1eb479da8e..e2090fd4a5 100644
--- a/c/src/lib/libcpu/powerpc/mpc6xx/mmu/bat.c
+++ b/c/src/lib/libcpu/powerpc/mpc6xx/mmu/bat.c
@@ -380,8 +380,9 @@ setbat (int typ, int bat_index, unsigned long virt, unsigned long phys,
init_done = 1;
}
}
-
- if (size >= (1 << 17) && (err = check_overlap (typ, virt, size)) >= 0) {
+
+ err = check_overlap (typ, virt, size);
+ if ((size >= (1 << 17)) && (err >= 0) && (err != bat_index)) {
rtems_interrupt_enable (level);
printk ("BATs must not overlap; area 0x%08x..0x%08x hits %cBAT %i\n",
virt, virt + size, (TYP_I == typ ? 'I' : 'D'), err);