diff options
author | Paul Mackerras <paulus@ozlabs.org> | 2017-01-30 21:21:45 +1100 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2017-01-31 19:11:48 +1100 |
commit | f4c51f841d2ac7d36cacb84efbc383190861f87c (patch) | |
tree | 7592614fcde2aee646cda406e9e29ee8ef134f85 /arch/powerpc/include/asm/kvm_host.h | |
parent | 9e04ba69beec372ddf857c700ff922e95f50b0d0 (diff) | |
download | linux-stable-f4c51f841d2ac7d36cacb84efbc383190861f87c.tar.gz linux-stable-f4c51f841d2ac7d36cacb84efbc383190861f87c.tar.bz2 linux-stable-f4c51f841d2ac7d36cacb84efbc383190861f87c.zip |
KVM: PPC: Book3S HV: Modify guest entry/exit paths to handle radix guests
This adds code to branch around the parts that radix guests don't
need - clearing and loading the SLB with the guest SLB contents,
saving the guest SLB contents on exit, and restoring the host SLB
contents.
Since the host is now using radix, we need to save and restore the
host value for the PID register.
On hypervisor data/instruction storage interrupts, we don't do the
guest HPT lookup on radix, but just save the guest physical address
for the fault (from the ASDR register) in the vcpu struct.
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch/powerpc/include/asm/kvm_host.h')
-rw-r--r-- | arch/powerpc/include/asm/kvm_host.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h index fb73518bd03b..da1421a4d6f2 100644 --- a/arch/powerpc/include/asm/kvm_host.h +++ b/arch/powerpc/include/asm/kvm_host.h @@ -606,6 +606,7 @@ struct kvm_vcpu_arch { ulong fault_dar; u32 fault_dsisr; unsigned long intr_msr; + ulong fault_gpa; /* guest real address of page fault (POWER9) */ #endif #ifdef CONFIG_BOOKE |