[PATCH 5/6] ARM: kvm: Use phys_addr_t instead of unsigned long in mm code

Santosh Shilimkar santosh.shilimkar at ti.com
Thu Nov 14 14:37:45 EST 2013


The unsigned long datatype is not sufficient for mapping physical addresses
greater than 4GB.

So fix the KVM mm code accordingly. Special thanks to Christopher for debug
help to figure out the bug.

Cc: Christoffer Dall <christoffer.dall at linaro.org>
Cc: Marc Zyngier <marc.zyngier at arm.com>

Signed-off-by: Santosh Shilimkar <santosh.shilimkar at ti.com>
---
 arch/arm/kvm/mmu.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/kvm/mmu.c b/arch/arm/kvm/mmu.c
index 3bd652f..657f15e 100644
--- a/arch/arm/kvm/mmu.c
+++ b/arch/arm/kvm/mmu.c
@@ -318,7 +318,7 @@ out:
  */
 int create_hyp_mappings(void *from, void *to)
 {
-	unsigned long phys_addr = virt_to_phys(from);
+	phys_addr_t phys_addr = virt_to_phys(from);
 	unsigned long start = KERN_TO_HYP((unsigned long)from);
 	unsigned long end = KERN_TO_HYP((unsigned long)to);
 
-- 
1.7.9.5




More information about the linux-arm-kernel mailing list