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/cache.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/cache.c')
-rw-r--r-- | arch/mips/mm/cache.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/mips/mm/cache.c b/arch/mips/mm/cache.c index 12af739048fa..829320c7b175 100644 --- a/arch/mips/mm/cache.c +++ b/arch/mips/mm/cache.c | |||
@@ -35,6 +35,11 @@ void (*local_flush_icache_range)(unsigned long start, unsigned long end); | |||
35 | void (*__flush_cache_vmap)(void); | 35 | void (*__flush_cache_vmap)(void); |
36 | void (*__flush_cache_vunmap)(void); | 36 | void (*__flush_cache_vunmap)(void); |
37 | 37 | ||
38 | void (*__flush_kernel_vmap_range)(unsigned long vaddr, int size); | ||
39 | void (*__invalidate_kernel_vmap_range)(unsigned long vaddr, int size); | ||
40 | |||
41 | EXPORT_SYMBOL_GPL(__flush_kernel_vmap_range); | ||
42 | |||
38 | /* MIPS specific cache operations */ | 43 | /* MIPS specific cache operations */ |
39 | void (*flush_cache_sigtramp)(unsigned long addr); | 44 | void (*flush_cache_sigtramp)(unsigned long addr); |
40 | void (*local_flush_data_cache_page)(void * addr); | 45 | void (*local_flush_data_cache_page)(void * addr); |