iommu/exynos: add missing cache flush for removed page table entries
Subsystems (3)
PATCH v7 2/9 iommu/exynos: add missing cache flush for removed page table entries
This commit adds cache flush for removed small and large page entries in exynos_iommu_unmap(). Missing cache flush of removed page table entries can cause missing page fault interrupt when a master IP accesses an unmapped area.
Signed-off-by Cho KyongHo <[email protected]>
--- drivers/iommu/exynos-iommu.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
drivers/iommu/exynos-iommu.c +2 -0
@@ -1002,6 +1002,7 @@ static size_t exynos_iommu_unmap(struct iommu_domain *domain,if (lv2ent_small (ent)) { *ent =0 ; size =SPAGE_SIZE ; +pgtable_flush (ent, ent +1 ); priv->lv2entcnt[lv1ent_offset (iova)] +=1 ; goto done; }
@@ -1010,6 +1011,7 @@ static size_t exynos_iommu_unmap(struct iommu_domain *domain,BUG_ON (size <LPAGE_SIZE );memset (ent,0 ,sizeof (*ent) *SPAGES_PER_LPAGE ); +pgtable_flush (ent, ent +SPAGES_PER_LPAGE ); size =LPAGE_SIZE ; priv->lv2entcnt[lv1ent_offset (iova)] +=SPAGES_PER_LPAGE ;
Signature · 1 line
1.7.2.5