summaryrefslogtreecommitdiffstats
path: root/target-openrisc
diff options
context:
space:
mode:
authorSebastian Macke2013-10-03 10:04:46 +0200
committerJia Liu2013-10-03 10:24:24 +0200
commitbf961b52785061e1802214c9e03a1c65b261f7c1 (patch)
tree0ed12ff58f420a4741bd5e807a3f214abe33ab4b /target-openrisc
parentMerge remote-tracking branch 'kraxel/seabios-1.7.3.2' into staging (diff)
downloadqemu-bf961b52785061e1802214c9e03a1c65b261f7c1.tar.gz
qemu-bf961b52785061e1802214c9e03a1c65b261f7c1.tar.xz
qemu-bf961b52785061e1802214c9e03a1c65b261f7c1.zip
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>
Diffstat (limited to 'target-openrisc')
-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)) {