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)
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>

No differences found