diff options
author | Marc Zyngier <marc.zyngier@arm.com> | 2013-05-14 07:11:37 -0400 |
---|---|---|
committer | Christoffer Dall <christoffer.dall@linaro.org> | 2013-06-26 13:50:03 -0400 |
commit | dac288f7b38a7439502b77dabcdf8a9a5c4ae721 (patch) | |
tree | 16fceb85ae06b082cd20a1a68044dc94c0826e9e /arch | |
parent | 368074d908b785588778f00b4384376cd636f4a1 (diff) |
ARM: KVM: use phys_addr_t instead of unsigned long long for HYP PGDs
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 <catalin.marinas@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <cdall@cs.columbia.edu>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/include/asm/kvm_host.h | 4 | ||||
-rw-r--r-- | 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 ff5aaf10e6ec..1f3cee2e210e 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 *); | |||
190 | int handle_exit(struct kvm_vcpu *vcpu, struct kvm_run *run, | 190 | int handle_exit(struct kvm_vcpu *vcpu, struct kvm_run *run, |
191 | int exception_index); | 191 | int exception_index); |
192 | 192 | ||
193 | static inline void __cpu_init_hyp_mode(unsigned long long boot_pgd_ptr, | 193 | static inline void __cpu_init_hyp_mode(phys_addr_t boot_pgd_ptr, |
194 | unsigned long long pgd_ptr, | 194 | phys_addr_t pgd_ptr, |
195 | unsigned long hyp_stack_ptr, | 195 | unsigned long hyp_stack_ptr, |
196 | unsigned long vector_ptr) | 196 | unsigned long vector_ptr) |
197 | { | 197 | { |
diff --git a/arch/arm/kvm/arm.c b/arch/arm/kvm/arm.c index 37d216d814cd..327a1fb70fc9 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, | |||
789 | 789 | ||
790 | static void cpu_init_hyp_mode(void *dummy) | 790 | static void cpu_init_hyp_mode(void *dummy) |
791 | { | 791 | { |
792 | unsigned long long boot_pgd_ptr; | 792 | phys_addr_t boot_pgd_ptr; |
793 | unsigned long long pgd_ptr; | 793 | phys_addr_t pgd_ptr; |
794 | unsigned long hyp_stack_ptr; | 794 | unsigned long hyp_stack_ptr; |
795 | unsigned long stack_page; | 795 | unsigned long stack_page; |
796 | unsigned long vector_ptr; | 796 | unsigned long vector_ptr; |
@@ -798,8 +798,8 @@ static void cpu_init_hyp_mode(void *dummy) | |||
798 | /* Switch from the HYP stub to our own HYP init vector */ | 798 | /* Switch from the HYP stub to our own HYP init vector */ |
799 | __hyp_set_vectors(kvm_get_idmap_vector()); | 799 | __hyp_set_vectors(kvm_get_idmap_vector()); |
800 | 800 | ||
801 | boot_pgd_ptr = (unsigned long long)kvm_mmu_get_boot_httbr(); | 801 | boot_pgd_ptr = kvm_mmu_get_boot_httbr(); |
802 | pgd_ptr = (unsigned long long)kvm_mmu_get_httbr(); | 802 | pgd_ptr = kvm_mmu_get_httbr(); |
803 | stack_page = __get_cpu_var(kvm_arm_hyp_stack_page); | 803 | stack_page = __get_cpu_var(kvm_arm_hyp_stack_page); |
804 | hyp_stack_ptr = stack_page + PAGE_SIZE; | 804 | hyp_stack_ptr = stack_page + PAGE_SIZE; |
805 | vector_ptr = (unsigned long)__kvm_hyp_vector; | 805 | vector_ptr = (unsigned long)__kvm_hyp_vector; |