aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mm/fault-armv.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/arch/arm/mm/fault-armv.c b/arch/arm/mm/fault-armv.c
index c45f9bb318ad..c9b97e9836a2 100644
--- a/arch/arm/mm/fault-armv.c
+++ b/arch/arm/mm/fault-armv.c
@@ -99,7 +99,8 @@ static int adjust_pte(struct vm_area_struct *vma, unsigned long address,
99} 99}
100 100
101static void 101static void
102make_coherent(struct address_space *mapping, struct vm_area_struct *vma, unsigned long addr, unsigned long pfn) 102make_coherent(struct address_space *mapping, struct vm_area_struct *vma,
103 unsigned long addr, pte_t *ptep, unsigned long pfn)
103{ 104{
104 struct mm_struct *mm = vma->vm_mm; 105 struct mm_struct *mm = vma->vm_mm;
105 struct vm_area_struct *mpnt; 106 struct vm_area_struct *mpnt;
@@ -131,7 +132,7 @@ make_coherent(struct address_space *mapping, struct vm_area_struct *vma, unsigne
131 } 132 }
132 flush_dcache_mmap_unlock(mapping); 133 flush_dcache_mmap_unlock(mapping);
133 if (aliases) 134 if (aliases)
134 adjust_pte(vma, addr, pfn); 135 do_adjust_pte(vma, addr, pfn, ptep);
135 else 136 else
136 flush_cache_page(vma, addr, pfn); 137 flush_cache_page(vma, addr, pfn);
137} 138}
@@ -174,7 +175,7 @@ void update_mmu_cache(struct vm_area_struct *vma, unsigned long addr,
174#endif 175#endif
175 if (mapping) { 176 if (mapping) {
176 if (cache_is_vivt()) 177 if (cache_is_vivt())
177 make_coherent(mapping, vma, addr, pfn); 178 make_coherent(mapping, vma, addr, ptep, pfn);
178 else if (vma->vm_flags & VM_EXEC) 179 else if (vma->vm_flags & VM_EXEC)
179 __flush_icache_all(); 180 __flush_icache_all();
180 } 181 }