KVM: PPC: initialize IVORs in addition to IVPR
authorHollis Blanchard <hollis_blanchard@mentor.com>
Sat, 7 Aug 2010 17:33:56 +0000 (10:33 -0700)
committerAvi Kivity <avi@redhat.com>
Sun, 24 Oct 2010 08:52:17 +0000 (10:52 +0200)
Developers can now tell at a glace the exact type of the premature interrupt,
instead of just knowing that there was some premature interrupt.

Signed-off-by: Hollis Blanchard <hollis_blanchard@mentor.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
arch/powerpc/kvm/booke.c

index c604277..835f6d0 100644 (file)
@@ -497,15 +497,19 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
 /* Initial guest state: 16MB mapping 0 -> 0, PC = 0, MSR = 0, R1 = 16MB */
 int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu)
 {
+       int i;
+
        vcpu->arch.pc = 0;
        vcpu->arch.shared->msr = 0;
        kvmppc_set_gpr(vcpu, 1, (16<<20) - 8); /* -8 for the callee-save LR slot */
 
        vcpu->arch.shadow_pid = 1;
 
-       /* Eye-catching number so we know if the guest takes an interrupt
-        * before it's programmed its own IVPR. */
+       /* Eye-catching numbers so we know if the guest takes an interrupt
+        * before it's programmed its own IVPR/IVORs. */
        vcpu->arch.ivpr = 0x55550000;
+       for (i = 0; i < BOOKE_IRQPRIO_MAX; i++)
+               vcpu->arch.ivor[i] = 0x7700 | i * 4;
 
        kvmppc_init_timing_stats(vcpu);