KVM: PPC: bookehv: Add EPCR support in mtspr/mfspr emulation
[linux-2.6-block.git] / arch / powerpc / kvm / booke.c
index 9457fb1b41c9c799f2e2aac8511a3025370d1cf0..037d045db3f1af6fe86eedc11f89d984094b1525 100644 (file)
@@ -1473,6 +1473,18 @@ void kvmppc_core_flush_memslot(struct kvm *kvm, struct kvm_memory_slot *memslot)
 {
 }
 
+void kvmppc_set_epcr(struct kvm_vcpu *vcpu, u32 new_epcr)
+{
+#if defined(CONFIG_64BIT)
+       vcpu->arch.epcr = new_epcr;
+#ifdef CONFIG_KVM_BOOKE_HV
+       vcpu->arch.shadow_epcr &= ~SPRN_EPCR_GICM;
+       if (vcpu->arch.epcr  & SPRN_EPCR_ICM)
+               vcpu->arch.shadow_epcr |= SPRN_EPCR_GICM;
+#endif
+#endif
+}
+
 void kvmppc_set_tcr(struct kvm_vcpu *vcpu, u32 new_tcr)
 {
        vcpu->arch.tcr = new_tcr;