diff options
author | Alex Williamson <alex.williamson@redhat.com> | 2013-06-15 10:27:19 -0600 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-10-13 14:51:06 -0700 |
commit | 00dd675556f5c6a17bcba5f7e47c2552daeed84c (patch) | |
tree | 9c45f1fde364e28bd061ac1265348ade2a381000 /drivers/block | |
parent | 5b31202a3604ef905d0433402aaf8aadf4660774 (diff) | |
download | kernel_samsung_smdk4412-00dd675556f5c6a17bcba5f7e47c2552daeed84c.zip kernel_samsung_smdk4412-00dd675556f5c6a17bcba5f7e47c2552daeed84c.tar.gz kernel_samsung_smdk4412-00dd675556f5c6a17bcba5f7e47c2552daeed84c.tar.bz2 |
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>
Cc: stable@vger.kernel.org
Reviewed-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Joerg Roedel <joro@8bytes.org>
Signed-off-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/block')
0 files changed, 0 insertions, 0 deletions