]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
intel-iommu: Fix leaks in pagetable freeing
authorAlex Williamson <alex.williamson@redhat.com>
Sat, 15 Jun 2013 16:27:19 +0000 (10:27 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 27 Sep 2013 00:21:56 +0000 (17:21 -0700)
commit33d979ef579c0786beb27115d427cf6693e57981
tree222059c17ab79c64e19f0bda5e755d48ec88b3a2
parent7c0f09b99b7c8947d255c511677480cae9fd4582
intel-iommu: Fix leaks in pagetable freeing

commit 3269ee0bd6686baf86630300d528500ac5b516d7 upstream.

At best the current code only seems to free the leaf pagetables and
the root.  If you're unlucky enough to have a large gap (like any
QEMU guest with more than 3G of memory), only the first chunk of leaf
pagetables are freed (plus the root).  This is a massive memory leak.
This patch re-writes the pagetable freeing function to use a
recursive algorithm and manages to not only free all the pagetables,
but does it without any apparent performance loss versus the current
broken version.

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Reviewed-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Joerg Roedel <joro@8bytes.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/iommu/intel-iommu.c