arm/arm64: KVM: Fix hyp mappings of vmalloc regions
authorChristoffer Dall <[email protected]>
Fri, 15 Nov 2013 21:14:12 +0000 (13:14 -0800)
committerChristoffer Dall <[email protected]>
Sun, 17 Nov 2013 02:54:45 +0000 (18:54 -0800)
commit40c2729bab48e2832b17c1fa8af9db60e776131b
treea87b795e3d512d059c099beb1c1af8b28e4ba90f
parent5e01dc7b26d9f24f39abace5da98ccbd6a5ceb52
arm/arm64: KVM: Fix hyp mappings of vmalloc regions

Using virt_to_phys on percpu mappings is horribly wrong as it may be
backed by vmalloc.  Introduce kvm_kaddr_to_phys which translates both
types of valid kernel addresses to the corresponding physical address.

At the same time resolves a typing issue where we were storing the
physical address as a 32 bit unsigned long (on arm), truncating the
physical address for addresses above the 4GB limit.  This caused
breakage on Keystone.

Cc: <[email protected]> [3.10+]
Reported-by: Santosh Shilimkar <[email protected]>
Tested-by: Santosh Shilimkar <[email protected]>
Signed-off-by: Marc Zyngier <[email protected]>
Signed-off-by: Christoffer Dall <[email protected]>
arch/arm/kvm/mmu.c