From: Sebastian Macke Date: Thu, 3 Oct 2013 08:04:46 +0000 (+0800) Subject: target-openrisc: Correct handling of page faults. X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=bf961b52785061e1802214c9e03a1c65b261f7c1;p=qmiga%2Fqemu.git 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 Reviewed-by: Jia Liu --- 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)) {