diff options
Diffstat (limited to 'arch/powerpc/kvm/book3s.c')
-rw-r--r-- | arch/powerpc/kvm/book3s.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/arch/powerpc/kvm/book3s.c b/arch/powerpc/kvm/book3s.c index 31facfc1314b..37ca8a0897c3 100644 --- a/arch/powerpc/kvm/book3s.c +++ b/arch/powerpc/kvm/book3s.c | |||
@@ -488,6 +488,23 @@ mmio: | |||
488 | } | 488 | } |
489 | EXPORT_SYMBOL_GPL(kvmppc_ld); | 489 | EXPORT_SYMBOL_GPL(kvmppc_ld); |
490 | 490 | ||
491 | int kvmppc_load_last_inst(struct kvm_vcpu *vcpu, enum instruction_type type, | ||
492 | u32 *inst) | ||
493 | { | ||
494 | ulong pc = kvmppc_get_pc(vcpu); | ||
495 | int r; | ||
496 | |||
497 | if (type == INST_SC) | ||
498 | pc -= 4; | ||
499 | |||
500 | r = kvmppc_ld(vcpu, &pc, sizeof(u32), inst, false); | ||
501 | if (r == EMULATE_DONE) | ||
502 | return r; | ||
503 | else | ||
504 | return EMULATE_AGAIN; | ||
505 | } | ||
506 | EXPORT_SYMBOL_GPL(kvmppc_load_last_inst); | ||
507 | |||
491 | int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu) | 508 | int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu) |
492 | { | 509 | { |
493 | return 0; | 510 | return 0; |