OSDN Git Service

arm/arm64: KVM: Allow a VCPU to fully reset itself
authorMarc Zyngier <marc.zyngier@arm.com>
Thu, 20 Dec 2018 11:36:07 +0000 (11:36 +0000)
committerMarc Zyngier <marc.zyngier@arm.com>
Thu, 7 Feb 2019 11:44:13 +0000 (11:44 +0000)
commit358b28f09f0ab074d781df72b8a671edb1547789
tree7e85610ff66698d60b528d8697e4d221a3ceb851
parente761a927bc9a7ee6ceb7c4f63d5922dbced87f0d
arm/arm64: KVM: Allow a VCPU to fully reset itself

The current kvm_psci_vcpu_on implementation will directly try to
manipulate the state of the VCPU to reset it.  However, since this is
not done on the thread that runs the VCPU, we can end up in a strangely
corrupted state when the source and target VCPUs are running at the same
time.

Fix this by factoring out all reset logic from the PSCI implementation
and forwarding the required information along with a request to the
target VCPU.

Reviewed-by: Andrew Jones <drjones@redhat.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@arm.com>
arch/arm/include/asm/kvm_host.h
arch/arm/kvm/reset.c
arch/arm64/include/asm/kvm_host.h
arch/arm64/kvm/reset.c
virt/kvm/arm/arm.c
virt/kvm/arm/psci.c