On Mon, Mar 30, 2020 at 11:49:41AM +0200, Cédric Le Goater wrote:
> It will ease the introduction of new routines for partition-scoped
> Radix translation.
>
> Signed-off-by: Suraj Jitindar Singh <sjitindarsingh@gmail.com>
> Signed-off-by: Cédric Le Goater <clg@kaod.org>
Applied to ppc-for-5.1.
> ---
> target/ppc/mmu-radix64.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/target/ppc/mmu-radix64.c b/target/ppc/mmu-radix64.c
> index 99678570581b..f6007e956569 100644
> --- a/target/ppc/mmu-radix64.c
> +++ b/target/ppc/mmu-radix64.c
> @@ -229,12 +229,13 @@ int ppc_radix64_handle_mmu_fault(PowerPCCPU *cpu, vaddr eaddr, int rwx,
> uint64_t lpid = 0, pid = 0, offset, size, prtbe0, pte;
> int page_size, prot, fault_cause = 0;
> ppc_v3_pate_t pate;
> + bool relocation;
>
> assert((rwx == 0) || (rwx == 1) || (rwx == 2));
>
> + relocation = ((rwx == 2) && (msr_ir == 1)) || ((rwx != 2) && (msr_dr == 1));
> /* HV or virtual hypervisor Real Mode Access */
> - if ((msr_hv || cpu->vhyp) &&
> - (((rwx == 2) && (msr_ir == 0)) || ((rwx != 2) && (msr_dr == 0)))) {
> + if (!relocation && (msr_hv || cpu->vhyp)) {
> /* In real mode top 4 effective addr bits (mostly) ignored */
> raddr = eaddr & 0x0FFFFFFFFFFFFFFFULL;
>
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson