diff options
author | Hiroshi Doyu <hdoyu@nvidia.com> | 2012-11-28 08:52:53 -0500 |
---|---|---|
committer | Joerg Roedel <joro@8bytes.org> | 2012-11-28 10:11:52 -0500 |
commit | 37683e45623a0ccd34761c71aad618cc129fe35c (patch) | |
tree | b02d6d8853a94c0c2af7623c83c36614b20b7b31 /drivers/iommu | |
parent | 9489e9dcae718d5fde988e4a684a0f55b5f94d17 (diff) |
iommu/tegra: smmu: Remove unnecessary PTC/TLB flush all
smmu_flush_regs() does TLB/PTC flush all when freeing a second level
page table. This isn't necessay at all since each pte entry has been
already maintained by address in the above flush_ptc_and_tlb().
Signed-off-by: Hiroshi Doyu <hdoyu@nvidia.com>
Signed-off-by: Joerg Roedel <joro@8bytes.org>
Diffstat (limited to 'drivers/iommu')
-rw-r--r-- | drivers/iommu/tegra-smmu.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/iommu/tegra-smmu.c b/drivers/iommu/tegra-smmu.c index c0f7a4266263..48538a6d2198 100644 --- a/drivers/iommu/tegra-smmu.c +++ b/drivers/iommu/tegra-smmu.c | |||
@@ -696,10 +696,8 @@ static void __smmu_iommu_unmap(struct smmu_as *as, dma_addr_t iova) | |||
696 | *pte = _PTE_VACANT(iova); | 696 | *pte = _PTE_VACANT(iova); |
697 | FLUSH_CPU_DCACHE(pte, page, sizeof(*pte)); | 697 | FLUSH_CPU_DCACHE(pte, page, sizeof(*pte)); |
698 | flush_ptc_and_tlb(as->smmu, as, iova, pte, page, 0); | 698 | flush_ptc_and_tlb(as->smmu, as, iova, pte, page, 0); |
699 | if (!--(*count)) { | 699 | if (!--(*count)) |
700 | free_ptbl(as, iova); | 700 | free_ptbl(as, iova); |
701 | smmu_flush_regs(as->smmu, 0); | ||
702 | } | ||
703 | } | 701 | } |
704 | 702 | ||
705 | static void __smmu_iommu_map_pfn(struct smmu_as *as, dma_addr_t iova, | 703 | static void __smmu_iommu_map_pfn(struct smmu_as *as, dma_addr_t iova, |