arm/arm64: KVM: Fix and refactor unmap_range
authorChristoffer Dall <christoffer.dall@linaro.org>
Fri, 9 May 2014 21:31:31 +0000 (23:31 +0200)
committerChristoffer Dall <christoffer.dall@linaro.org>
Fri, 11 Jul 2014 11:46:51 +0000 (04:46 -0700)
commit4f853a714bf16338ff5261128e6c7ae2569e9505
tree3726687645ce6cc69b732606ebf07ff89cea63e5
parent9f6226a762c7ae02f6a23a3d4fc552dafa57ea23
arm/arm64: KVM: Fix and refactor unmap_range

unmap_range() was utterly broken, to quote Marc, and broke in all sorts
of situations.  It was also quite complicated to follow and didn't
follow the usual scheme of having a separate iterating function for each
level of page tables.

Address this by refactoring the code and introduce a pgd_clear()
function.

Reviewed-by: Jungseok Lee <jays.lee@samsung.com>
Reviewed-by: Mario Smarduch <m.smarduch@samsung.com>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
arch/arm/include/asm/kvm_mmu.h
arch/arm/kvm/mmu.c
arch/arm64/include/asm/kvm_mmu.h