| From 8e748c8d09a9314eedb5c6367d9acfaacddcdc88 Mon Sep 17 00:00:00 2001 |
| From: James Hogan <james.hogan@imgtec.com> |
| Date: Mon, 27 Apr 2015 15:07:16 +0100 |
| Subject: MIPS: Fix KVM guest fixmap address |
| |
| From: James Hogan <james.hogan@imgtec.com> |
| |
| commit 8e748c8d09a9314eedb5c6367d9acfaacddcdc88 upstream. |
| |
| 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 |
| Patchwork: https://patchwork.linux-mips.org/patch/9887/ |
| Signed-off-by: Ralf Baechle <ralf@linux-mips.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| arch/mips/include/asm/mach-generic/spaces.h | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| --- a/arch/mips/include/asm/mach-generic/spaces.h |
| +++ b/arch/mips/include/asm/mach-generic/spaces.h |
| @@ -94,7 +94,11 @@ |
| #endif |
| |
| #ifndef FIXADDR_TOP |
| +#ifdef CONFIG_KVM_GUEST |
| +#define FIXADDR_TOP ((unsigned long)(long)(int)0x7ffe0000) |
| +#else |
| #define FIXADDR_TOP ((unsigned long)(long)(int)0xfffe0000) |
| #endif |
| +#endif |
| |
| #endif /* __ASM_MACH_GENERIC_SPACES_H */ |