From bf961b52785061e1802214c9e03a1c65b261f7c1 Mon Sep 17 00:00:00 2001 From: Sebastian Macke Date: Thu, 3 Oct 2013 16:04:46 +0800 Subject: 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 --- target-openrisc/mmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'target-openrisc') 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)) { -- cgit v1.2.1