On 3/30/20 7:01 PM, Greg Kurz wrote: > On Mon, 30 Mar 2020 11:49:45 +0200 > Cédric Le Goater <c...@kaod.org> wrote: > >> This prepares ground for partition-scoped Radix translation. >> >> Signed-off-by: Suraj Jitindar Singh <sjitindarsi...@gmail.com> >> Signed-off-by: Cédric Le Goater <c...@kaod.org> >> --- >> target/ppc/mmu-radix64.c | 11 ++++++----- >> 1 file changed, 6 insertions(+), 5 deletions(-) >> >> diff --git a/target/ppc/mmu-radix64.c b/target/ppc/mmu-radix64.c >> index 136498111f60..3ae29ed90d49 100644 >> --- a/target/ppc/mmu-radix64.c >> +++ b/target/ppc/mmu-radix64.c >> @@ -105,7 +105,8 @@ static void ppc_radix64_raise_si(PowerPCCPU *cpu, int >> rwx, vaddr eaddr, >> >> >> static bool ppc_radix64_check_prot(PowerPCCPU *cpu, int rwx, uint64_t pte, >> - int *fault_cause, int *prot) >> + int *fault_cause, int *prot, >> + bool partition_scoped) >> { >> CPUPPCState *env = &cpu->env; >> const int need_prot[] = { PAGE_READ, PAGE_WRITE, PAGE_EXEC }; >> @@ -121,11 +122,11 @@ static bool ppc_radix64_check_prot(PowerPCCPU *cpu, >> int rwx, uint64_t pte, >> } >> >> /* Determine permissions allowed by Encoded Access Authority */ >> - if ((pte & R_PTE_EAA_PRIV) && msr_pr) { /* Insufficient Privilege */ >> + if (!partition_scoped && (pte & R_PTE_EAA_PRIV) && msr_pr) { >> *prot = 0; >> - } else if (msr_pr || (pte & R_PTE_EAA_PRIV)) { >> + } else if (msr_pr || (pte & R_PTE_EAA_PRIV) || partition_scoped) { >> *prot = ppc_radix64_get_prot_eaa(pte); >> - } else { /* !msr_pr && !(pte & R_PTE_EAA_PRIV) */ >> + } else { /* !msr_pr && !(pte & R_PTE_EAA_PRIV) && !partition_scoped */ >> *prot = ppc_radix64_get_prot_eaa(pte); >> *prot &= ppc_radix64_get_prot_amr(cpu); /* Least combined >> permissions */ >> } >> @@ -266,7 +267,7 @@ static int ppc_radix64_process_scoped_xlate(PowerPCCPU >> *cpu, int rwx, >> g_raddr, g_page_size, &fault_cause, >> &pte_addr); >> >> if (!(pte & R_PTE_VALID) || >> - ppc_radix64_check_prot(cpu, rwx, pte, &fault_cause, g_prot)) { >> + ppc_radix64_check_prot(cpu, rwx, pte, &fault_cause, g_prot, 0)) { > > Maybe pass false since ppc_radix64_check_prot() expects a bool ?
Sure, > Apart from that, > > Reviewed-by: Greg Kurz <gr...@kaod.org> Thanks, C.