summaryrefslogtreecommitdiffstats
path: root/arch/mips/include/asm/highmem.h
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2016-01-28 14:26:00 +0100
committerRalf Baechle <ralf@linux-mips.org>2016-05-13 14:01:38 +0200
commit34ae8e3688fb8af2afaf52b78c6f20c74c6ae650 (patch)
tree4d242fab4556c7ff5ea856b556cbd42ae92be021 /arch/mips/include/asm/highmem.h
parentMIPS: Loongson64: Remove call to flush_cache_all(). (diff)
downloadlinux-34ae8e3688fb8af2afaf52b78c6f20c74c6ae650.tar.xz
linux-34ae8e3688fb8af2afaf52b78c6f20c74c6ae650.zip
MIPS: highmem: Turn flush_cache_kmaps into a no-op.
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>
Diffstat (limited to 'arch/mips/include/asm/highmem.h')
-rw-r--r--arch/mips/include/asm/highmem.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/mips/include/asm/highmem.h b/arch/mips/include/asm/highmem.h
index 01880b34a209..64f2500d891b 100644
--- a/arch/mips/include/asm/highmem.h
+++ b/arch/mips/include/asm/highmem.h
@@ -19,8 +19,10 @@
#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);