From: Jiang Liu Date: Wed, 9 Apr 2014 02:20:39 +0000 (+0800) Subject: iommu/vt-d: fix memory leakage caused by commit ea8ea46 X-Git-Tag: omap-for-v3.16/soc-signed~34^2^2~2 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=adeb25905c644350baf1f446bcd856517e58060e;p=pandora-kernel.git iommu/vt-d: fix memory leakage caused by commit ea8ea46 Commit ea8ea46 "iommu/vt-d: Clean up and fix page table clear/free behaviour" introduces possible leakage of DMA page tables due to: for (pte = page_address(pg); !first_pte_in_page(pte); pte++) { if (dma_pte_present(pte) && !dma_pte_superpage(pte)) freelist = dma_pte_list_pagetables(domain, level - 1, pte, freelist); } For the first pte in a page, first_pte_in_page(pte) will always be true, thus dma_pte_list_pagetables() will never be called and leak DMA page tables if level is bigger than 1. Signed-off-by: Jiang Liu Signed-off-by: David Woodhouse --- Reading git-diff-tree failed