diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2011-06-17 11:20:28 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2011-10-20 10:00:18 -0400 |
commit | d9cdc901af0f92da7f90c750d8c187f5500be067 (patch) | |
tree | 1b5e11202d86081253ab1422e302b45902a346a3 /arch/mips/mm/c-octeon.c | |
parent | 2e5db86dd4166fd88a042bbb229dfc7081df3e92 (diff) |
MIPS: cache: Provide cache flush operations for XFS
Until now flush_kernel_vmap_range() and invalidate_kernel_vmap_range() did
not exist on MIPS resulting in heavy cache corruption on XFS filesystems.
Left for the post-3.0 time: optimization and make this work with highmem,
too. Since the combination of highmem + cache aliases atm doesn't work
this isn't a regression.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Patchwork: https://patchwork.linux-mips.org/patch/2505/
Diffstat (limited to 'arch/mips/mm/c-octeon.c')
-rw-r--r-- | arch/mips/mm/c-octeon.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/mips/mm/c-octeon.c b/arch/mips/mm/c-octeon.c index 16c4d256b76f..daa81f7284ac 100644 --- a/arch/mips/mm/c-octeon.c +++ b/arch/mips/mm/c-octeon.c | |||
@@ -169,6 +169,10 @@ static void octeon_flush_cache_page(struct vm_area_struct *vma, | |||
169 | octeon_flush_icache_all_cores(vma); | 169 | octeon_flush_icache_all_cores(vma); |
170 | } | 170 | } |
171 | 171 | ||
172 | static void octeon_flush_kernel_vmap_range(unsigned long vaddr, int size) | ||
173 | { | ||
174 | BUG(); | ||
175 | } | ||
172 | 176 | ||
173 | /** | 177 | /** |
174 | * Probe Octeon's caches | 178 | * Probe Octeon's caches |
@@ -273,6 +277,8 @@ void __cpuinit octeon_cache_init(void) | |||
273 | flush_icache_range = octeon_flush_icache_range; | 277 | flush_icache_range = octeon_flush_icache_range; |
274 | local_flush_icache_range = local_octeon_flush_icache_range; | 278 | local_flush_icache_range = local_octeon_flush_icache_range; |
275 | 279 | ||
280 | __flush_kernel_vmap_range = octeon_flush_kernel_vmap_range; | ||
281 | |||
276 | build_clear_page(); | 282 | build_clear_page(); |
277 | build_copy_page(); | 283 | build_copy_page(); |
278 | } | 284 | } |