Merge branch 'sh-latest' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal...
[pandora-kernel.git] / arch / powerpc / kvm / emulate.c
index c64fd29..141dce3 100644 (file)
@@ -114,6 +114,12 @@ void kvmppc_emulate_dec(struct kvm_vcpu *vcpu)
        }
 }
 
+u32 kvmppc_get_dec(struct kvm_vcpu *vcpu, u64 tb)
+{
+       u64 jd = tb - vcpu->arch.dec_jiffies;
+       return vcpu->arch.dec - jd;
+}
+
 /* XXX to do:
  * lhax
  * lhaux
@@ -279,11 +285,8 @@ int kvmppc_emulate_instruction(struct kvm_run *run, struct kvm_vcpu *vcpu)
 
                        case SPRN_DEC:
                        {
-                               u64 jd = get_tb() - vcpu->arch.dec_jiffies;
-                               kvmppc_set_gpr(vcpu, rt, vcpu->arch.dec - jd);
-                               pr_debug("mfDEC: %x - %llx = %lx\n",
-                                        vcpu->arch.dec, jd,
-                                        kvmppc_get_gpr(vcpu, rt));
+                               kvmppc_set_gpr(vcpu, rt,
+                                              kvmppc_get_dec(vcpu, get_tb()));
                                break;
                        }
                        default:
@@ -294,6 +297,7 @@ int kvmppc_emulate_instruction(struct kvm_run *run, struct kvm_vcpu *vcpu)
                                }
                                break;
                        }
+                       kvmppc_set_exit_type(vcpu, EMULATED_MFSPR_EXITS);
                        break;
 
                case OP_31_XOP_STHX:
@@ -363,6 +367,7 @@ int kvmppc_emulate_instruction(struct kvm_run *run, struct kvm_vcpu *vcpu)
                                        printk("mtspr: unknown spr %x\n", sprn);
                                break;
                        }
+                       kvmppc_set_exit_type(vcpu, EMULATED_MTSPR_EXITS);
                        break;
 
                case OP_31_XOP_DCBI: