From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexander Graf Date: Tue, 15 May 2012 14:28:43 +0000 Subject: Re: [PATCH] KVM: PPC: booke: Added DECAR support Message-Id: <4FB2681B.5040007@suse.de> List-Id: References: <1337067209-26435-1-git-send-email-bharat.bhushan@freescale.com> In-Reply-To: <1337067209-26435-1-git-send-email-bharat.bhushan@freescale.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: kvm-ppc@vger.kernel.org On 05/15/2012 09:33 AM, Bharat Bhushan wrote: > Added the decrementer auto-reload support. > > Signed-off-by: Bharat Bhushan > --- > arch/powerpc/include/asm/kvm_host.h | 2 ++ > arch/powerpc/kvm/booke.c | 5 +++++ > arch/powerpc/kvm/booke_emulate.c | 7 ++++++- > 3 files changed, 13 insertions(+), 1 deletions(-) > > diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h > index d848cdc..1d6f89e 100644 > --- a/arch/powerpc/include/asm/kvm_host.h > +++ b/arch/powerpc/include/asm/kvm_host.h > @@ -414,7 +414,9 @@ struct kvm_vcpu_arch { > ulong mcsrr1; > ulong mcsr; > u32 dec; > +#ifdef CONFIG_BOOKE > u32 decar; > +#endif > u32 tbl; > u32 tbu; > u32 tcr; > diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c > index 72f13f4..86681ee 100644 > --- a/arch/powerpc/kvm/booke.c > +++ b/arch/powerpc/kvm/booke.c > @@ -1267,6 +1267,11 @@ void kvmppc_decrementer_func(unsigned long data) > { > struct kvm_vcpu *vcpu = (struct kvm_vcpu *)data; > > + if (vcpu->arch.tcr& TCR_ARE) { > + vcpu->arch.dec = vcpu->arch.decar; > + kvmppc_emulate_dec(vcpu); > + } > + > kvmppc_set_tsr_bits(vcpu, TSR_DIS); > } > > diff --git a/arch/powerpc/kvm/booke_emulate.c b/arch/powerpc/kvm/booke_emulate.c > index 6c76397..83c3796 100644 > --- a/arch/powerpc/kvm/booke_emulate.c > +++ b/arch/powerpc/kvm/booke_emulate.c > @@ -129,6 +129,9 @@ int kvmppc_booke_emulate_mtspr(struct kvm_vcpu *vcpu, int sprn, ulong spr_val) > kvmppc_set_tcr(vcpu, spr_val); > break; > > + case SPRN_DECAR: > + vcpu->arch.decar = spr_val; > + break; > /* > * Note: SPRG4-7 are user-readable. > * These values are loaded into the real SPRGs when resuming the > @@ -244,7 +247,9 @@ int kvmppc_booke_emulate_mfspr(struct kvm_vcpu *vcpu, int sprn, ulong *spr_val) > case SPRN_TCR: > *spr_val = vcpu->arch.tcr; > break; > - > + case SPRN_DECAR: > + *spr_val = vcpu->arch.decar; > + break; DECAR can't be read. Otherwise looks good to me. Alex