linux/arch/mips/kvm
James Hogan 66ffc50c48 MIPS: KVM: Fix translation of MFC0 ErrCtl
The MIPS KVM dynamic translation is meant to translate "MFC0 rt, ErrCtl"
instructions into "ADD rt, zero, zero" to zero the destination register,
however the rt register number was copied into rt of the ADD instruction
encoding, which is the 2nd source operand. This results in "ADD zero,
zero, rt" which is a no-op, so only the first execution of each such
MFC0 from ErrCtl will actually read 0.

Fix the shift to put the rt from the MFC0 encoding into the rd field of
the ADD.

Fixes: 50c8308538 ("KVM/MIPS32: Binary patching of select privileged instructions.")
Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Radim Krčmář <rkrcmar@redhat.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: linux-mips@linux-mips.org
Cc: kvm@vger.kernel.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2016-06-15 23:58:16 +02:00
..
00README.txt KVM/MIPS32: Release notes and KVM module Makefile 2013-05-08 03:55:35 +02:00
callback.c MIPS: KVM: Convert EXPORT_SYMBOL to _GPL 2016-01-24 03:13:24 +01:00
commpage.c MIPS: KVM: Skip memory cleaning in kvm_mips_commpage_init() 2014-06-30 16:52:03 +02:00
commpage.h MIPS: KVM: Rename files to remove the prefix "kvm_" and "kvm_mips_" 2014-06-30 16:52:03 +02:00
dyntrans.c MIPS: KVM: Fix translation of MFC0 ErrCtl 2016-06-15 23:58:16 +02:00
emulate.c MIPS: KVM: Print unknown load/store encodings 2016-06-14 11:16:25 +02:00
fpu.S MIPS: KVM: Add base guest FPU support 2015-03-27 21:25:14 +00:00
interrupt.c MIPS: KVM: Convert code to kernel sized types 2016-06-14 11:02:41 +02:00
interrupt.h MIPS: KVM: Convert headers to kernel sized types 2016-06-14 11:02:40 +02:00
Kconfig rcu: Make SRCU optional by using CONFIG_SRCU 2015-01-06 11:04:29 -08:00
locore.S MIPS: KVM: Restore host EBase from ebase variable 2016-06-14 11:02:44 +02:00
Makefile MIPS: KVM: Move non-TLB handling code out of tlb.c 2016-06-14 11:02:42 +02:00
mips.c MIPS: KVM: Add guest mode switch trace events 2016-06-14 11:16:24 +02:00
mmu.c MIPS: KVM: Dump guest tlbs if kvm_get_inst() fails 2016-06-14 11:16:25 +02:00
msa.S MIPS: KVM: Add base guest MSA support 2015-03-27 21:25:19 +00:00
stats.c MIPS: KVM: Clean up kvm_exit trace event 2016-06-14 11:16:23 +02:00
tlb.c MIPS: KVM: Use MIPS_ENTRYLO_* defs from mipsregs.h 2016-06-14 11:02:46 +02:00
trace.h MIPS: KVM: Trace guest register access emulation 2016-06-14 11:16:24 +02:00
trap_emul.c MIPS: KVM: Combine handle_tlb_ld/st_miss 2016-06-14 11:02:47 +02:00