diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-10-25 09:35:13 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-12-04 09:58:51 -0500 |
commit | 9e95922b1016ac941db7edcf6b6088b3c2e916c8 (patch) | |
tree | 1b60b7231f9412e7c842c9a12804b3ab914ca5cd /arch/arm/mm/flush.c | |
parent | 115b22474eb1905da2f606a057da3455833333d3 (diff) |
ARM: I-cache: Add invalidation for VIVT ASID tagged caches
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mm/flush.c')
-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, |