diff options
-rw-r--r-- | arch/arm/mm/flush.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm/mm/flush.c b/arch/arm/mm/flush.c index dc66f867bec4..9770e27dd581 100644 --- a/arch/arm/mm/flush.c +++ b/arch/arm/mm/flush.c | |||
@@ -69,6 +69,9 @@ void flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned | |||
69 | : "cc"); | 69 | : "cc"); |
70 | __flush_icache_all(); | 70 | __flush_icache_all(); |
71 | } | 71 | } |
72 | |||
73 | if (vma->vm_flags & VM_EXEC && icache_is_vivt_asid_tagged()) | ||
74 | __flush_icache_all(); | ||
72 | } | 75 | } |
73 | 76 | ||
74 | void flush_cache_page(struct vm_area_struct *vma, unsigned long user_addr, unsigned long pfn) | 77 | void flush_cache_page(struct vm_area_struct *vma, unsigned long user_addr, unsigned long pfn) |
@@ -82,6 +85,9 @@ void flush_cache_page(struct vm_area_struct *vma, unsigned long user_addr, unsig | |||
82 | flush_pfn_alias(pfn, user_addr); | 85 | flush_pfn_alias(pfn, user_addr); |
83 | __flush_icache_all(); | 86 | __flush_icache_all(); |
84 | } | 87 | } |
88 | |||
89 | if (vma->vm_flags & VM_EXEC && icache_is_vivt_asid_tagged()) | ||
90 | __flush_icache_all(); | ||
85 | } | 91 | } |
86 | 92 | ||
87 | void flush_ptrace_access(struct vm_area_struct *vma, struct page *page, | 93 | void flush_ptrace_access(struct vm_area_struct *vma, struct page *page, |