| 1 | --- a/arch/mips/mm/cache.c |
| 2 | +++ b/arch/mips/mm/cache.c |
| 3 | @@ -39,6 +39,7 @@ void (*__flush_kernel_vmap_range)(unsign |
| 4 | void (*__invalidate_kernel_vmap_range)(unsigned long vaddr, int size); |
| 5 | |
| 6 | EXPORT_SYMBOL_GPL(__flush_kernel_vmap_range); |
| 7 | +EXPORT_SYMBOL(__flush_cache_all); |
| 8 | |
| 9 | /* MIPS specific cache operations */ |
| 10 | void (*flush_cache_sigtramp)(unsigned long addr); |
| 11 | --- a/fs/fuse/dev.c |
| 12 | +++ b/fs/fuse/dev.c |
| 13 | @@ -19,6 +19,9 @@ |
| 14 | #include <linux/pipe_fs_i.h> |
| 15 | #include <linux/swap.h> |
| 16 | #include <linux/splice.h> |
| 17 | +#ifdef CONFIG_MIPS |
| 18 | +#include <asm/cacheflush.h> |
| 19 | +#endif |
| 20 | |
| 21 | MODULE_ALIAS_MISCDEV(FUSE_MINOR); |
| 22 | MODULE_ALIAS("devname:fuse"); |
| 23 | @@ -655,6 +658,9 @@ static int fuse_copy_fill(struct fuse_co |
| 24 | static int fuse_copy_do(struct fuse_copy_state *cs, void **val, unsigned *size) |
| 25 | { |
| 26 | unsigned ncpy = min(*size, cs->len); |
| 27 | +#ifdef CONFIG_MIPS |
| 28 | + __flush_cache_all(); |
| 29 | +#endif |
| 30 | if (val) { |
| 31 | if (cs->write) |
| 32 | memcpy(cs->buf, *val, ncpy); |
| 33 | |