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 | |
| parent | 115b22474eb1905da2f606a057da3455833333d3 (diff) | |
ARM: I-cache: Add invalidation for VIVT ASID tagged caches
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| -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, |
