From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christoffer Dall Subject: Re: [PATCH v3 4/7] ARM: KVM: use phys_addr_t instead of unsigned long long for HYP PGDs Date: Mon, 27 May 2013 19:11:21 -0700 Message-ID: <20130528021121.GD16071@ubuntu> References: <1368529900-22572-1-git-send-email-marc.zyngier@arm.com> <1368529900-22572-5-git-send-email-marc.zyngier@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org, Catalin Marinas To: Marc Zyngier Return-path: Received: from mail-pb0-f43.google.com ([209.85.160.43]:39271 "EHLO mail-pb0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758539Ab3E1CLY (ORCPT ); Mon, 27 May 2013 22:11:24 -0400 Received: by mail-pb0-f43.google.com with SMTP id ma3so7354744pbc.16 for ; Mon, 27 May 2013 19:11:23 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1368529900-22572-5-git-send-email-marc.zyngier@arm.com> Sender: kvm-owner@vger.kernel.org List-ID: On Tue, May 14, 2013 at 12:11:37PM +0100, Marc Zyngier wrote: > HYP PGDs are passed around as phys_addr_t, except just before calling > into the hypervisor init code, where they are cast to a rather weird > unsigned long long. > > Just keep them around as phys_addr_t, which is what makes the most > sense. > > Reported-by: Catalin Marinas > Signed-off-by: Marc Zyngier > --- > arch/arm/include/asm/kvm_host.h | 4 ++-- > arch/arm/kvm/arm.c | 8 ++++---- > 2 files changed, 6 insertions(+), 6 deletions(-) > > diff --git a/arch/arm/include/asm/kvm_host.h b/arch/arm/include/asm/kvm_host.h > index 57cb786..ff49193 100644 > --- a/arch/arm/include/asm/kvm_host.h > +++ b/arch/arm/include/asm/kvm_host.h > @@ -190,8 +190,8 @@ int kvm_arm_coproc_set_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *); > int handle_exit(struct kvm_vcpu *vcpu, struct kvm_run *run, > int exception_index); > > -static inline void __cpu_init_hyp_mode(unsigned long long boot_pgd_ptr, > - unsigned long long pgd_ptr, > +static inline void __cpu_init_hyp_mode(phys_addr_t boot_pgd_ptr, > + phys_addr_t pgd_ptr, > unsigned long hyp_stack_ptr, > unsigned long vector_ptr) > { > diff --git a/arch/arm/kvm/arm.c b/arch/arm/kvm/arm.c > index 37d216d..327a1fb 100644 > --- a/arch/arm/kvm/arm.c > +++ b/arch/arm/kvm/arm.c > @@ -789,8 +789,8 @@ long kvm_arch_vm_ioctl(struct file *filp, > > static void cpu_init_hyp_mode(void *dummy) > { > - unsigned long long boot_pgd_ptr; > - unsigned long long pgd_ptr; > + phys_addr_t boot_pgd_ptr; > + phys_addr_t pgd_ptr; > unsigned long hyp_stack_ptr; > unsigned long stack_page; > unsigned long vector_ptr; > @@ -798,8 +798,8 @@ static void cpu_init_hyp_mode(void *dummy) > /* Switch from the HYP stub to our own HYP init vector */ > __hyp_set_vectors(kvm_get_idmap_vector()); > > - boot_pgd_ptr = (unsigned long long)kvm_mmu_get_boot_httbr(); > - pgd_ptr = (unsigned long long)kvm_mmu_get_httbr(); > + boot_pgd_ptr = kvm_mmu_get_boot_httbr(); > + pgd_ptr = kvm_mmu_get_httbr(); > stack_page = __get_cpu_var(kvm_arm_hyp_stack_page); > hyp_stack_ptr = stack_page + PAGE_SIZE; > vector_ptr = (unsigned long)__kvm_hyp_vector; > -- > 1.8.2.3 > > Applied, thanks. -Christoffer