KVM: ppc: e500: Directly pass pvr to guest
Liu Yu [Fri, 5 Jun 2009 06:54:30 +0000 (14:54 +0800)]
Signed-off-by: Liu Yu <yu.liu@freescale.com>
Signed-off-by: Avi Kivity <avi@redhat.com>

arch/powerpc/include/asm/kvm_host.h
arch/powerpc/kvm/e500.c
arch/powerpc/kvm/emulate.c

index fddc3ed..d4caa61 100644 (file)
@@ -153,7 +153,6 @@ struct kvm_vcpu_arch {
        u32 pid;
        u32 swap_pid;
 
-       u32 pvr;
        u32 ccr0;
        u32 ccr1;
        u32 dbcr0;
index 674e796..64949ee 100644 (file)
@@ -60,9 +60,6 @@ int kvmppc_core_vcpu_setup(struct kvm_vcpu *vcpu)
 
        kvmppc_e500_tlb_setup(vcpu_e500);
 
-       /* Use the same core vertion as host's */
-       vcpu->arch.pvr = mfspr(SPRN_PVR);
-
        return 0;
 }
 
index a561d6e..f8b8248 100644 (file)
@@ -187,7 +187,7 @@ int kvmppc_emulate_instruction(struct kvm_run *run, struct kvm_vcpu *vcpu)
                        case SPRN_SRR1:
                                vcpu->arch.gpr[rt] = vcpu->arch.srr1; break;
                        case SPRN_PVR:
-                               vcpu->arch.gpr[rt] = vcpu->arch.pvr; break;
+                               vcpu->arch.gpr[rt] = mfspr(SPRN_PVR); break;
 
                        /* Note: mftb and TBRL/TBWL are user-accessible, so
                         * the guest can always access the real TB anyways.