Message ID | 20220309192756.145283-1-leandro.lupori@eldorado.org.br (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | target/ppc: fix ISI fault cause for Radix MMU | expand |
On 3/9/22 20:27, Leandro Lupori wrote: > Fix Instruction Storage Interrupt (ISI) fault cause for Radix MMU, > when caused by missing PAGE_EXEC permission, to be > SRR1_NOEXEC_GUARD instead of DSISR_PROTFAULT. > This matches POWER9 hardware behavior. > > Fixes: d5fee0bbe68 ("target/ppc: Implement ISA V3.00 radix page fault handler") > Signed-off-by: Leandro Lupori <leandro.lupori@eldorado.org.br> > --- > target/ppc/mmu-radix64.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) Queued for 7.0 Thanks, C.
diff --git a/target/ppc/mmu-radix64.c b/target/ppc/mmu-radix64.c index 67c38f065b..5414fd63c1 100644 --- a/target/ppc/mmu-radix64.c +++ b/target/ppc/mmu-radix64.c @@ -204,7 +204,8 @@ static bool ppc_radix64_check_prot(PowerPCCPU *cpu, MMUAccessType access_type, /* Check if requested access type is allowed */ need_prot = prot_for_access_type(access_type); if (need_prot & ~*prot) { /* Page Protected for that Access */ - *fault_cause |= DSISR_PROTFAULT; + *fault_cause |= access_type == MMU_INST_FETCH ? SRR1_NOEXEC_GUARD : + DSISR_PROTFAULT; return true; }
Fix Instruction Storage Interrupt (ISI) fault cause for Radix MMU, when caused by missing PAGE_EXEC permission, to be SRR1_NOEXEC_GUARD instead of DSISR_PROTFAULT. This matches POWER9 hardware behavior. Fixes: d5fee0bbe68 ("target/ppc: Implement ISA V3.00 radix page fault handler") Signed-off-by: Leandro Lupori <leandro.lupori@eldorado.org.br> --- target/ppc/mmu-radix64.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)