OSDN Git Service

arm/arm64: KVM: Fix hyp mappings of vmalloc regions
authorChristoffer Dall <christoffer.dall@linaro.org>
Fri, 15 Nov 2013 21:14:12 +0000 (13:14 -0800)
committerChristoffer Dall <christoffer.dall@linaro.org>
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: <stable@vger.kernel.org> [3.10+]
Reported-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Tested-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
arch/arm/kvm/mmu.c