diff options
author | Alexander Graf <agraf@suse.de> | 2012-12-14 23:42:05 +0100 |
---|---|---|
committer | Alexander Graf <agraf@suse.de> | 2013-01-10 13:15:08 +0100 |
commit | 50c7bb80b5bd5a9962905306dd2292eeb9857d46 (patch) | |
tree | e3cdb57befb40b314f2ccceece50d9ab2477f2f9 /arch/powerpc/kvm/book3s_pr.c | |
parent | 5a33169ed29060df71627103e6968078b42de945 (diff) | |
download | linux-50c7bb80b5bd5a9962905306dd2292eeb9857d46.tar.bz2 |
KVM: PPC: Book3S: PR: Enable alternative instruction for SC 1
When running on top of pHyp, the hypercall instruction "sc 1" goes
straight into pHyp without trapping in supervisor mode.
So if we want to support PAPR guest in this configuration we need to
add a second way of accessing PAPR hypercalls, preferably with the
exact same semantics except for the instruction.
So let's overlay an officially reserved instruction and emulate PAPR
hypercalls whenever we hit that one.
Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'arch/powerpc/kvm/book3s_pr.c')
-rw-r--r-- | arch/powerpc/kvm/book3s_pr.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/powerpc/kvm/book3s_pr.c b/arch/powerpc/kvm/book3s_pr.c index 28d38adeca73..73ed11c41bac 100644 --- a/arch/powerpc/kvm/book3s_pr.c +++ b/arch/powerpc/kvm/book3s_pr.c @@ -760,6 +760,11 @@ program_interrupt: run->exit_reason = KVM_EXIT_MMIO; r = RESUME_HOST_NV; break; + case EMULATE_DO_PAPR: + run->exit_reason = KVM_EXIT_PAPR_HCALL; + vcpu->arch.hcall_needed = 1; + r = RESUME_HOST_NV; + break; default: BUG(); } |