aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kvm
diff options
context:
space:
mode:
authorPaul Mackerras <paulus@samba.org>2013-09-20 00:52:41 -0400
committerAlexander Graf <agraf@suse.de>2013-10-17 08:45:02 -0400
commitf3271d4c9011bf5f36a65b9b5e7caaef4280686d (patch)
tree87ebaa857ae61b6db67cad0cae978b69e0cd4f21 /arch/powerpc/kvm
parent388cc6e133132e6c9b64e7d5361114a3a7d57663 (diff)
KVM: PPC: Book3S HV: Don't crash host on unknown guest interrupt
If we come out of a guest with an interrupt that we don't know about, instead of crashing the host with a BUG(), we now return to userspace with the exit reason set to KVM_EXIT_UNKNOWN and the trap vector in the hw.hardware_exit_reason field of the kvm_run structure, as is done on x86. Note that run->exit_reason is already set to KVM_EXIT_UNKNOWN at the beginning of kvmppc_handle_exit(). Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'arch/powerpc/kvm')
-rw-r--r--arch/powerpc/kvm/book3s_hv.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c
index e42fb5448608..de9520f9241f 100644
--- a/arch/powerpc/kvm/book3s_hv.c
+++ b/arch/powerpc/kvm/book3s_hv.c
@@ -709,8 +709,8 @@ static int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
709 printk(KERN_EMERG "trap=0x%x | pc=0x%lx | msr=0x%llx\n", 709 printk(KERN_EMERG "trap=0x%x | pc=0x%lx | msr=0x%llx\n",
710 vcpu->arch.trap, kvmppc_get_pc(vcpu), 710 vcpu->arch.trap, kvmppc_get_pc(vcpu),
711 vcpu->arch.shregs.msr); 711 vcpu->arch.shregs.msr);
712 run->hw.hardware_exit_reason = vcpu->arch.trap;
712 r = RESUME_HOST; 713 r = RESUME_HOST;
713 BUG();
714 break; 714 break;
715 } 715 }
716 716