This series fixes a number of issues: - When powering on and resetting VCPUs, we can be preempted in the middle which can lead to guest system register corruption. - We were missing support for PSCI ON_PENDING when multiple VCPUs try to turn on a target VCPU at the same time. - Powering off a VCPU could race with powering on the same VCPU. - We unnecesarily panic'ed if we found a non-initialized guest system register. The main approach to fixing all these problems is by using VCPU requests. See the individual patches for more details. Christoffer Dall (3): KVM: arm/arm64: Reset the VCPU without preemption and vcpu state loaded KVM: arm/arm64: Require VCPU threads to turn them self off KVM: arm/arm64: Implement PSCI ON_PENDING when turning on VCPUs Marc Zyngier (2): arm/arm64: KVM: Allow a VCPU to fully reset itself arm/arm64: KVM: Don't panic on failure to properly reset system registers arch/arm/include/asm/kvm_host.h | 22 ++++++++++- arch/arm/kvm/coproc.c | 4 +- arch/arm/kvm/reset.c | 24 ++++++++++++ arch/arm64/include/asm/kvm_host.h | 23 ++++++++++- arch/arm64/kvm/reset.c | 50 +++++++++++++++++++++++- arch/arm64/kvm/sys_regs.c | 4 +- virt/kvm/arm/arm.c | 40 ++++++++++++++----- virt/kvm/arm/psci.c | 64 +++++++++++++++---------------- 8 files changed, 177 insertions(+), 54 deletions(-) -- 2.18.0