aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Macke <sebastian@macke.de>2013-10-03 16:04:46 +0800
committerJia Liu <proljc@gmail.com>2013-10-03 16:24:24 +0800
commitbf961b52785061e1802214c9e03a1c65b261f7c1 (patch)
tree0ed12ff58f420a4741bd5e807a3f214abe33ab4b
parenta684f3cf9b9b9c3cb82be87aafc463de8974610c (diff)
target-openrisc: Correct handling of page faults.
The result of (rw & 0) is always zero and therefore a logic false. The whole comparison will therefore never be executed, it is a obvious bug, we should use !(rw & 1) here. Signed-off-by: Sebastian Macke <sebastian@macke.de> Reviewed-by: Jia Liu <proljc@gmail.com>
-rw-r--r--target-openrisc/mmu.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/target-openrisc/mmu.c b/target-openrisc/mmu.c
index 57f5616e9c..323a173a82 100644
--- a/target-openrisc/mmu.c
+++ b/target-openrisc/mmu.c
@@ -102,7 +102,7 @@ int cpu_openrisc_get_phys_data(OpenRISCCPU *cpu,
}
}
- if ((rw & 0) && ((right & PAGE_READ) == 0)) {
+ if (!(rw & 1) && ((right & PAGE_READ) == 0)) {
return TLBRET_BADADDR;
}
if ((rw & 1) && ((right & PAGE_WRITE) == 0)) {