linux-stable/arch/mips/kvm
James Hogan 273819a6a5 KVM: MIPS/VZ: Support guest load-linked bit
When restoring guest state after another VCPU has run, be sure to clear
CP0_LLAddr.LLB in order to break any interrupted atomic critical
section. Without this SMP guest atomics don't work when LLB is present
as one guest can complete the atomic section started by another guest.

MIPS VZ guest read of CP0_LLAddr causes Guest Privileged Sensitive
Instruction (GPSI) exception due to the address being root physical.
Handle this by reporting only the LLB bit, which contains the bit for
whether a ll/sc atomic is in progress without any reason for failure.

Similarly on P5600 a guest write to CP0_LLAddr also causes a GPSI
exception. Handle this also by clearing the guest LLB bit from root
mode.

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
2017-03-28 14:53:58 +01:00
..
00README.txt
callback.c MIPS: KVM: Convert EXPORT_SYMBOL to _GPL 2016-01-24 03:13:24 +01:00
commpage.c MIPS: kvm: Audit and remove any unnecessary uses of module.h 2016-10-05 01:31:20 +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 KVM: MIPS/T&E: Use lockless GVA helpers for dyntrans 2017-02-03 15:21:12 +00:00
emulate.c KVM: MIPS/Emulate: Drop CACHE emulation for VZ 2017-03-28 14:53:53 +01:00
entry.c KVM: MIPS/Entry: Update entry code to support VZ 2017-03-28 14:53:51 +01:00
fpu.S MIPS: KVM: Fix fpu.S misassembly with r6 2016-07-05 16:09:11 +02:00
hypcall.c KVM: MIPS: Implement HYPCALL emulation 2017-03-28 14:53:33 +01:00
interrupt.c KVM: MIPS/T&E: Implement CP0_EBase register 2017-02-03 15:21:30 +00:00
interrupt.h KVM: MIPS: Implement VZ support 2017-03-28 14:53:54 +01:00
Kconfig KVM: MIPS: Add VZ support to build system 2017-03-28 14:53:54 +01:00
Makefile KVM: MIPS: Add VZ support to build system 2017-03-28 14:53:54 +01:00
mips.c KVM: MIPS: Implement VZ support 2017-03-28 14:53:54 +01:00
mmu.c KVM: MIPS: Implement VZ support 2017-03-28 14:53:54 +01: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 KVM: MIPS: Implement VZ support 2017-03-28 14:53:54 +01:00
trace.h KVM: MIPS: Implement VZ support 2017-03-28 14:53:54 +01:00
trap_emul.c KVM: MIPS: Abstract guest CP0 register access for VZ 2017-03-28 14:53:50 +01:00
vz.c KVM: MIPS/VZ: Support guest load-linked bit 2017-03-28 14:53:58 +01:00