diff options
author | Bharat Bhushan <bharat.bhushan@freescale.com> | 2013-04-07 20:32:14 -0400 |
---|---|---|
committer | Alexander Graf <agraf@suse.de> | 2013-04-26 14:27:03 -0400 |
commit | 0f47f9b51734290968189286e6b65f1139d0f72d (patch) | |
tree | 430d07d07feb9ab62539aba15fc94cf6d7ebd21d | |
parent | c402a3f457b9689451c4e422781026633a5b6287 (diff) |
KVM: extend EMULATE_EXIT_USER to support different exit reasons
Currently the instruction emulator code returns EMULATE_EXIT_USER
and common code initializes the "run->exit_reason = .." and
"vcpu->arch.hcall_needed = .." with one fixed reason.
But there can be different reasons when emulator need to exit
to user space. To support that the "run->exit_reason = .."
and "vcpu->arch.hcall_needed = .." initialization is moved a
level up to emulator.
Signed-off-by: Bharat Bhushan <bharat.bhushan@freescale.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
-rw-r--r-- | arch/powerpc/kvm/book3s_emulate.c | 2 | ||||
-rw-r--r-- | arch/powerpc/kvm/book3s_pr.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/arch/powerpc/kvm/book3s_emulate.c b/arch/powerpc/kvm/book3s_emulate.c index cdd19d64e354..1f6344c4408d 100644 --- a/arch/powerpc/kvm/book3s_emulate.c +++ b/arch/powerpc/kvm/book3s_emulate.c | |||
@@ -194,6 +194,8 @@ int kvmppc_core_emulate_op(struct kvm_run *run, struct kvm_vcpu *vcpu, | |||
194 | run->papr_hcall.args[i] = gpr; | 194 | run->papr_hcall.args[i] = gpr; |
195 | } | 195 | } |
196 | 196 | ||
197 | run->exit_reason = KVM_EXIT_PAPR_HCALL; | ||
198 | vcpu->arch.hcall_needed = 1; | ||
197 | emulated = EMULATE_EXIT_USER; | 199 | emulated = EMULATE_EXIT_USER; |
198 | break; | 200 | break; |
199 | } | 201 | } |
diff --git a/arch/powerpc/kvm/book3s_pr.c b/arch/powerpc/kvm/book3s_pr.c index b960faf990bf..c1cffa882a69 100644 --- a/arch/powerpc/kvm/book3s_pr.c +++ b/arch/powerpc/kvm/book3s_pr.c | |||
@@ -763,8 +763,6 @@ program_interrupt: | |||
763 | r = RESUME_HOST_NV; | 763 | r = RESUME_HOST_NV; |
764 | break; | 764 | break; |
765 | case EMULATE_EXIT_USER: | 765 | case EMULATE_EXIT_USER: |
766 | run->exit_reason = KVM_EXIT_PAPR_HCALL; | ||
767 | vcpu->arch.hcall_needed = 1; | ||
768 | r = RESUME_HOST_NV; | 766 | r = RESUME_HOST_NV; |
769 | break; | 767 | break; |
770 | default: | 768 | default: |