aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/include/asm/mach-generic
diff options
context:
space:
mode:
authorJames Hogan <james.hogan@imgtec.com>2015-04-27 10:07:16 -0400
committerRalf Baechle <ralf@linux-mips.org>2015-06-21 15:53:54 -0400
commit8e748c8d09a9314eedb5c6367d9acfaacddcdc88 (patch)
tree4b622ca0f406f46a50d2f02b7f71e3cef1de0855 /arch/mips/include/asm/mach-generic
parent24f2970fd32134ff8eb3387a54a1ef7ccac3f28f (diff)
MIPS: Fix KVM guest fixmap address
KVM guest kernels for trap & emulate run in user mode, with a modified set of kernel memory segments. However the fixmap address is still in the normal KSeg3 region at 0xfffe0000 regardless, causing problems when cache alias handling makes use of them when handling copy on write. Therefore define FIXADDR_TOP as 0x7ffe0000 in the guest kernel mapped region when CONFIG_KVM_GUEST is defined. Signed-off-by: James Hogan <james.hogan@imgtec.com> Cc: linux-mips@linux-mips.org Cc: <stable@vger.kernel.org> # v3.10+ Patchwork: https://patchwork.linux-mips.org/patch/9887/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/include/asm/mach-generic')
-rw-r--r--arch/mips/include/asm/mach-generic/spaces.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/mips/include/asm/mach-generic/spaces.h b/arch/mips/include/asm/mach-generic/spaces.h
index 9488fa5f8866..afc96ecb9004 100644
--- a/arch/mips/include/asm/mach-generic/spaces.h
+++ b/arch/mips/include/asm/mach-generic/spaces.h
@@ -94,7 +94,11 @@
94#endif 94#endif
95 95
96#ifndef FIXADDR_TOP 96#ifndef FIXADDR_TOP
97#ifdef CONFIG_KVM_GUEST
98#define FIXADDR_TOP ((unsigned long)(long)(int)0x7ffe0000)
99#else
97#define FIXADDR_TOP ((unsigned long)(long)(int)0xfffe0000) 100#define FIXADDR_TOP ((unsigned long)(long)(int)0xfffe0000)
98#endif 101#endif
102#endif
99 103
100#endif /* __ASM_MACH_GENERIC_SPACES_H */ 104#endif /* __ASM_MACH_GENERIC_SPACES_H */