diff options
author | Cédric Le Goater <clg@kaod.org> | 2018-04-24 13:30:41 +0200 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2018-05-04 09:56:27 +1000 |
commit | ef0d74212ab5101565313f172b8a5baafe9cd0d2 (patch) | |
tree | 603b860c794e006ef19ab5d1d3f43b8e8f0d5036 /target/ppc | |
parent | 59255887e6cafeff747250d2613003a41d1d9dff (diff) |
target/ppc: return a nil HPT base address on sPAPR machines
commit e57ca75ce3b2 ("target/ppc: Manage external HPT via virtual
hypervisor") exported a set of methods to manipulate the HPT from the
core hash MMU. But SPR_SDR1 is still used under some circumstances to
get the base address of the HPT, which is incorrect for the sPAPR
machines.
Only the logging should be impacted.
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'target/ppc')
-rw-r--r-- | target/ppc/mmu-hash64.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/target/ppc/mmu-hash64.h b/target/ppc/mmu-hash64.h index d5fc03441d..f6349ccdb3 100644 --- a/target/ppc/mmu-hash64.h +++ b/target/ppc/mmu-hash64.h @@ -102,6 +102,9 @@ void ppc_hash64_finalize(PowerPCCPU *cpu); static inline hwaddr ppc_hash64_hpt_base(PowerPCCPU *cpu) { + if (cpu->vhyp) { + return 0; + } return cpu->env.spr[SPR_SDR1] & SDR_64_HTABORG; } |