summaryrefslogtreecommitdiffstats
path: root/target
diff options
context:
space:
mode:
authorKONRAD Frederic2017-08-01 10:44:57 +0200
committerDavid Gibson2017-08-09 03:46:44 +0200
commit89fca22f212bd9000e9b481bd70dceb8df2a17a0 (patch)
tree0fb2e7718b271bf7cf4880049d7a880966fc2470 /target
parentUpdate version for v2.10.0-rc2 release (diff)
downloadqemu-89fca22f212bd9000e9b481bd70dceb8df2a17a0.tar.gz
qemu-89fca22f212bd9000e9b481bd70dceb8df2a17a0.tar.xz
qemu-89fca22f212bd9000e9b481bd70dceb8df2a17a0.zip
booke206: fix MAS update on tlb miss
When a tlb instruction miss happen, rw is set to 0 at the bottom of cpu_ppc_handle_mmu_fault which cause the MAS update function to miss the SAS and TS bit in MAS6, MAS1 in booke206_update_mas_tlb_miss. Just calling booke206_update_mas_tlb_miss with rw = 2 solve the issue. Signed-off-by: KONRAD Frederic <frederic.konrad@adacore.com> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'target')
-rw-r--r--target/ppc/mmu_helper.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/target/ppc/mmu_helper.c b/target/ppc/mmu_helper.c
index b7b9088842..f06b9382b4 100644
--- a/target/ppc/mmu_helper.c
+++ b/target/ppc/mmu_helper.c
@@ -1551,7 +1551,7 @@ static int cpu_ppc_handle_mmu_fault(CPUPPCState *env, target_ulong address,
env->spr[SPR_40x_ESR] = 0x00000000;
break;
case POWERPC_MMU_BOOKE206:
- booke206_update_mas_tlb_miss(env, address, rw);
+ booke206_update_mas_tlb_miss(env, address, 2);
/* fall through */
case POWERPC_MMU_BOOKE:
cs->exception_index = POWERPC_EXCP_ITLB;