linux/arch/mips
James Hogan c4c6f2cad9 KVM: MIPS: Disable HTW while in guest
Ensure any hardware page table walker (HTW) is disabled while in KVM
guest mode, as KVM doesn't yet set up hardware page table walking for
guest mappings so the wrong mappings would get loaded, resulting in the
guest hanging or crashing once it reaches userland.

The HTW is disabled and re-enabled around the call to
__kvm_mips_vcpu_run() which does the initial switch into guest mode and
the final switch out of guest context. Additionally it is enabled for
the duration of guest exits (i.e. kvm_mips_handle_exit()), getting
disabled again before returning back to guest or host.

In all cases the HTW is only disabled in normal kernel mode while
interrupts are disabled, so that the HTW doesn't get left disabled if
the process is preempted.

Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Markos Chandras <markos.chandras@imgtec.com>
Cc: Gleb Natapov <gleb@kernel.org>
Cc: kvm@vger.kernel.org
Cc: linux-mips@linux-mips.org
Cc: <stable@vger.kernel.org> # v3.17+
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-02-04 16:23:33 +01:00
..
alchemy Please consider pulling the clk framework changes toward 3.19. It is 2014-12-20 16:42:36 -08:00
ar7 mips: Convert pr_warning to pr_warn 2014-11-24 07:44:51 +01:00
ath25 MIPS: ath25: add Wireless device support 2014-11-24 07:45:29 +01:00
ath79 MIPS: ath79: Read the initrd address from the firmware environment 2014-11-24 07:45:30 +01:00
bcm47xx MIPS: BCM47XX: Clean up nvram header 2014-11-24 07:45:08 +01:00
bcm63xx MIPS: Remove useless parentheses 2014-11-24 07:44:49 +01:00
bcm3384 MIPS: bcm3384: Initial commit of bcm3384 platform support 2014-11-24 07:45:13 +01:00
boot MIPS: bcm3384: Initial commit of bcm3384 platform support 2014-11-24 07:45:13 +01:00
cavium-octeon USB patches for 3.19-rc1 2014-12-14 14:57:16 -08:00
cobalt
configs PM: Eliminate CONFIG_PM_RUNTIME 2014-12-19 22:55:06 +01:00
dec Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2014-06-09 18:10:34 -07:00
emma MIPS: Remove panic_timeout settings 2013-11-26 12:12:27 +01:00
fw MIPS: FW: Use kstrtoul() to parse unsigned long from the fw environment 2014-11-24 07:45:26 +01:00
include Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-12-12 16:11:12 -08:00
jazz
jz4740 MIPS: Replace use of phys_t with phys_addr_t. 2014-11-24 22:47:31 +01:00
kernel MIPS: Use phys_addr_t instead of phys_t 2014-12-12 15:36:13 -08:00
kvm KVM: MIPS: Disable HTW while in guest 2015-02-04 16:23:33 +01:00
lantiq Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
lasat MIPS: Lasat: Add missing CONFIG_PROC_FS dependency to PICVUE_PROC 2014-10-21 17:35:44 +02:00
lib MIPS: lib: memset: Clean up some MIPS{EL,EB} ifdefery 2014-11-24 07:45:42 +01:00
loongson Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2014-12-11 17:56:37 -08:00
loongson1 MIPS: Loongson1B: Add a clockevent/clocksource using PWM Timer 2014-11-24 07:45:09 +01:00
math-emu MIPS: Support for hybrid FPRs 2014-11-24 07:45:07 +01:00
mm kernel: Provide READ_ONCE and ASSIGN_ONCE 2014-12-20 16:48:59 -08:00
mti-malta MIPS: Replace use of phys_t with phys_addr_t. 2014-11-24 22:47:31 +01:00
mti-sead3 Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
net mips: bpf: Fix broken BPF_MOD 2014-12-08 20:22:30 -05:00
netlogic MIPS: Netlogic: handle modular AHCI builds 2014-11-24 07:44:06 +01:00
oprofile MIPS: oprofile: Backtrace: don't fail on leaf functions 2014-11-24 07:45:31 +01:00
paravirt mips: Update the email address of Geert Uytterhoeven 2014-06-02 16:34:41 +02:00
pci Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
pmcs-msp71xx MIPS: Remove useless parentheses 2014-11-24 07:44:49 +01:00
pnx833x MIPS: PNX833x: Remove checks for CONFIG_I2C_PNX0105 2014-05-23 15:12:39 +02:00
power nosave: consolidate __nosave_{begin,end} in <asm/sections.h> 2014-10-09 22:26:04 -04:00
ralink Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
rb532 MIPS: Replace use of phys_t with phys_addr_t. 2014-11-24 22:47:31 +01:00
sgi-ip22 MIPS: Remove useless parentheses 2014-11-24 07:44:49 +01:00
sgi-ip27 MIPS: Remove useless parentheses 2014-11-24 07:44:49 +01:00
sgi-ip32
sibyte MIPS: Replace use of phys_t with phys_addr_t. 2014-11-24 22:47:31 +01:00
sni
txx9 Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
vr41xx
Kbuild MIPS: net: Add BPF JIT 2014-05-30 16:10:20 +02:00
Kbuild.platforms MIPS: ath25: add common parts 2014-11-24 07:45:26 +01:00
Kconfig Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2014-12-11 17:56:37 -08:00
Kconfig.debug MIPS: Kconfig option to better exercise/debug hybrid FPRs 2014-11-24 07:45:08 +01:00
Makefile MIPS: IP22/IP32: Add line to arch/mips/Makefile archhelp about vmlinux.32 2014-11-24 07:45:33 +01:00