android_kernel_samsung_msm8976/drivers/iommu
Alex Williamson 1b24e0e487 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>
2013-09-26 17:18:27 -07:00
..
amd_iommu.c iommu/amd: Only unmap large pages from the first pte 2013-07-25 14:07:42 -07:00
amd_iommu_init.c IOMMU Updates for Linux v3.10 2013-05-06 14:59:13 -07:00
amd_iommu_proto.h
amd_iommu_types.h IOMMU Updates for Linux v3.10 2013-05-06 14:59:13 -07:00
amd_iommu_v2.c
dmar.c iommu/vt-d: Remove warning for HPET scope type 2013-04-24 19:53:31 +02:00
exynos-iommu.c iommu/fsl: Make iova dma_addr_t in the iommu_iova_to_phys API. 2013-04-02 18:20:53 +02:00
intel-iommu.c intel-iommu: Fix leaks in pagetable freeing 2013-09-26 17:18:27 -07:00
intel_irq_remapping.c iommu/vt-d: add quirk for broken interrupt remapping on 55XX chipsets 2013-04-18 17:00:47 +02:00
iommu.c Merge branches 'iommu/fixes', 'x86/vt-d', 'x86/amd', 'ppc/pamu', 'core' and 'arm/tegra' into next 2013-05-02 12:10:19 +02:00
iova.c
irq_remapping.c Merge branches 'iommu/fixes', 'x86/vt-d', 'x86/amd', 'ppc/pamu', 'core' and 'arm/tegra' into next 2013-05-02 12:10:19 +02:00
irq_remapping.h iommu/vt-d: add quirk for broken interrupt remapping on 55XX chipsets 2013-04-18 17:00:47 +02:00
Kconfig iommu: OMAP: build only on OMAP2+ 2013-03-09 18:54:34 +01:00
Makefile
msm_iommu.c iommu/fsl: Make iova dma_addr_t in the iommu_iova_to_phys API. 2013-04-02 18:20:53 +02:00
msm_iommu_dev.c
of_iommu.c
omap-iommu-debug.c
omap-iommu.c iommu/fsl: Make iova dma_addr_t in the iommu_iova_to_phys API. 2013-04-02 18:20:53 +02:00
omap-iommu.h
omap-iommu2.c
omap-iopgtable.h
omap-iovmm.c
pci.h iommu: Move swap_pci_ref function to drivers/iommu/pci.h. 2013-04-23 14:55:00 +02:00
shmobile-iommu.c iommu/fsl: Make iova dma_addr_t in the iommu_iova_to_phys API. 2013-04-02 18:20:53 +02:00
shmobile-ipmmu.c
shmobile-ipmmu.h
tegra-gart.c Merge branches 'iommu/fixes', 'x86/vt-d', 'x86/amd', 'ppc/pamu', 'core' and 'arm/tegra' into next 2013-05-02 12:10:19 +02:00
tegra-smmu.c Merge branches 'iommu/fixes', 'x86/vt-d', 'x86/amd', 'ppc/pamu', 'core' and 'arm/tegra' into next 2013-05-02 12:10:19 +02:00