iommu/io-pgtable-arm: Ensure we free the final level on teardown
authorWill Deacon <will.deacon@arm.com>
Tue, 15 Dec 2015 16:08:12 +0000 (16:08 +0000)
committerWill Deacon <will.deacon@arm.com>
Thu, 17 Dec 2015 12:05:36 +0000 (12:05 +0000)
commit12c2ab09571e8aae3a87da2a4a452632a5fac1e5
tree46a0b2a0f8448f954ee640dd5dc5633526105b60
parent6380be0535fd60c0a346ec0ae447f0f6c9e3ea83
iommu/io-pgtable-arm: Ensure we free the final level on teardown

When tearing down page tables, we return early for the final level
since we know that we won't have any table pointers to follow.
Unfortunately, this also means that we forget to free the final level,
so we end up leaking memory.

Fix the issue by always freeing the current level, but just don't bother
to iterate over the ptes if we're at the final level.

Cc: <stable@vger.kernel.org>
Reported-by: Zhang Bo <zhangbo_a@xiaomi.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
drivers/iommu/io-pgtable-arm.c