Commit d9847409 authored by Wanpeng Li's avatar Wanpeng Li Committed by Paolo Bonzini
Browse files

KVM: s390: Use kvm_vcpu_wake_up in kvm_s390_vcpu_wakeup



Use kvm_vcpu_wake_up() in kvm_s390_vcpu_wakeup().

Suggested-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Radim Krčmář <rkrcmar@redhat.com>
Cc: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: default avatarWanpeng Li <wanpengli@tencent.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent d73eb57b
Loading
Loading
Loading
Loading
+3 −20
Original line number Original line Diff line number Diff line
@@ -1224,28 +1224,11 @@ no_timer:


void kvm_s390_vcpu_wakeup(struct kvm_vcpu *vcpu)
void kvm_s390_vcpu_wakeup(struct kvm_vcpu *vcpu)
{
{
	/*
	 * We cannot move this into the if, as the CPU might be already
	 * in kvm_vcpu_block without having the waitqueue set (polling)
	 */
	vcpu->valid_wakeup = true;
	vcpu->valid_wakeup = true;
	kvm_vcpu_wake_up(vcpu);

	/*
	/*
	 * This is mostly to document, that the read in swait_active could
	 * The VCPU might not be sleeping but rather executing VSIE. Let's
	 * be moved before other stores, leading to subtle races.
	 * All current users do not store or use an atomic like update
	 */
	smp_mb__after_atomic();
	if (swait_active(&vcpu->wq)) {
		/*
		 * The vcpu gave up the cpu voluntarily, mark it as a good
		 * yield-candidate.
		 */
		vcpu->ready = true;
		swake_up_one(&vcpu->wq);
		vcpu->stat.halt_wakeup++;
	}
	/*
	 * The VCPU might not be sleeping but is executing the VSIE. Let's
	 * kick it, so it leaves the SIE to process the request.
	 * kick it, so it leaves the SIE to process the request.
	 */
	 */
	kvm_s390_vsie_kick(vcpu);
	kvm_s390_vsie_kick(vcpu);