linux_dsm_epyc7002/arch/mips/kvm
James Hogan 26f4f3b578 MIPS: KVM: Consult HWREna before emulating RDHWR
The ability to read hardware registers from userland with the RDHWR
instruction should depend upon the corresponding bit of the HWREna
register being set, otherwise a reserved instruction exception should be
generated.

However KVM's current emulation ignores the guest's HWREna and always
emulates RDHWR instructions even if the guest OS has disallowed them.

Therefore rework the RDHWR emulation code to check for privilege or the
corresponding bit in the guest HWREna bit. Also remove the #if 0 case
for the UserLocal register. I presume it was there for debug purposes
but it seems unnecessary now that the guest can control whether it
causes a guest exception.

Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Gleb Natapov <gleb@kernel.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Sanjay Lal <sanjayl@kymasys.com>
Cc: linux-mips@linux-mips.org
Cc: kvm@vger.kernel.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2014-03-19 17:01:43 +01:00
..
00README.txt KVM/MIPS32: Release notes and KVM module Makefile 2013-05-08 03:55:35 +02:00
Kconfig MIPS: kvm: Kconfig: Drop HAVE_KVM dependency from VIRTUALIZATION 2013-07-19 12:45:57 +02:00
kvm_cb.c KVM/MIPS32: Routines to handle specific traps/exceptions while executing the guest. 2013-05-08 03:55:36 +02:00
kvm_locore.S mips/kvm: Make kvm_locore.S 64-bit buildable/safe. 2013-08-26 12:30:49 +03:00
kvm_mips_comm.h KVM/MIPS32: Binary patching of select privileged instructions. 2013-05-09 17:48:22 +02:00
kvm_mips_commpage.c KVM/MIPS32: Binary patching of select privileged instructions. 2013-05-09 17:48:22 +02:00
kvm_mips_dyntrans.c KVM/MIPS32: Binary patching of select privileged instructions. 2013-05-09 17:48:22 +02:00
kvm_mips_emul.c MIPS: KVM: Consult HWREna before emulating RDHWR 2014-03-19 17:01:43 +01:00
kvm_mips_int.c KVM/MIPS32: Guest interrupt delivery. 2013-05-08 03:55:36 +02:00
kvm_mips_int.h KVM/MIPS32: Guest interrupt delivery. 2013-05-08 03:55:36 +02:00
kvm_mips_opcode.h KVM/MIPS32: Privileged instruction/target branch emulation. 2013-05-08 03:55:35 +02:00
kvm_mips_stats.c KVM/MIPS32: COP0 accesses profiling. 2013-05-08 03:55:36 +02:00
kvm_mips.c MIPS: KVM: remove shadow_tlb code 2014-01-24 22:39:56 +01:00
kvm_tlb.c mips: delete non-required instances of include <linux/init.h> 2014-01-24 22:39:56 +01:00
kvm_trap_emul.c mips/kvm: Fix ABI by moving manipulation of CP0 registers to KVM_{G,S}ET_ONE_REG 2013-06-03 10:58:54 +03:00
Makefile KVM/MIPS32: Release notes and KVM module Makefile 2013-05-08 03:55:35 +02:00
trace.h KVM/MIPS32: MIPS arch specific APIs for KVM 2013-05-08 03:55:35 +02:00