MIPS: highmem: Turn flush_cache_kmaps into a no-op.
authorRalf Baechle <ralf@linux-mips.org>
Thu, 28 Jan 2016 13:26:00 +0000 (14:26 +0100)
committerRalf Baechle <ralf@linux-mips.org>
Fri, 13 May 2016 12:01:38 +0000 (14:01 +0200)
It was calling flush_cache_all() which is a no-op since a long time anyway
and which was overkill in the old days when it was actually doing something
because only the D-cache needs to be flushed, never the I-cache, never
the S-cache.  Since however highmem on MIPS is still only supported on
processors that don't suffer from cache aliases, we could turn
flush_cache_kmaps() into a no-op - but for paranoia's sake we rather make
it BUG_ON(cpu_has_dc_aliases()).

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/include/asm/highmem.h

index 01880b34a209b37dd5b02d759afda543f7989e9a..64f2500d891b279493f422129fcb2093180a2527 100644 (file)
 
 #ifdef __KERNEL__
 
+#include <linux/bug.h>
 #include <linux/interrupt.h>
 #include <linux/uaccess.h>
+#include <asm/cpu-features.h>
 #include <asm/kmap_types.h>
 
 /* undef for production */
@@ -50,7 +52,7 @@ extern void *kmap_atomic(struct page *page);
 extern void __kunmap_atomic(void *kvaddr);
 extern void *kmap_atomic_pfn(unsigned long pfn);
 
-#define flush_cache_kmaps()    flush_cache_all()
+#define flush_cache_kmaps()    BUG_ON(cpu_has_dc_aliases)
 
 extern void kmap_init(void);