ARM: KVM: Fix unaligned unmap_range leak
authorChristoffer Dall <christoffer.dall@linaro.org>
Tue, 6 Aug 2013 20:50:54 +0000 (13:50 -0700)
committerChristoffer Dall <christoffer.dall@linaro.org>
Thu, 8 Aug 2013 01:17:28 +0000 (18:17 -0700)
commitd3840b26614d8ce3db53c98061d9fcb1b9ccb0dd
treeaf0294fc67a471ebf56404e456f2c344ef27345e
parent240e99cbd00aa541b572480e3ea7ecb0d480bc79
ARM: KVM: Fix unaligned unmap_range leak

The unmap_range function did not properly cover the case when the start
address was not aligned to PMD_SIZE or PUD_SIZE and an entire pte table
or pmd table was cleared, causing us to leak memory when incrementing
the addr.

The fix is to always move onto the next page table entry boundary
instead of adding the full size of the VA range covered by the
corresponding table level entry.

Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
arch/arm/kvm/mmu.c