intel-iommu: Fix leaks in pagetable freeing
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: NAlex Williamson <alex.williamson@redhat.com> Cc: stable@vger.kernel.org Reviewed-by: NMarcelo Tosatti <mtosatti@redhat.com> Signed-off-by: NJoerg Roedel <joro@8bytes.org>
Showing
想要评论请 注册 或 登录