mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 08:40:53 +07:00
KVM: s390: Use kvm_vcpu_wake_up in kvm_s390_vcpu_wakeup
Use kvm_vcpu_wake_up() in kvm_s390_vcpu_wakeup(). Suggested-by: Paolo 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: Wanpeng Li <wanpengli@tencent.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
d73eb57b80
commit
d984740944
@ -1224,28 +1224,11 @@ int kvm_s390_handle_wait(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;
|
||||
kvm_vcpu_wake_up(vcpu);
|
||||
|
||||
/*
|
||||
* This is mostly to document, that the read in swait_active could
|
||||
* 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
|
||||
* The VCPU might not be sleeping but rather executing VSIE. Let's
|
||||
* kick it, so it leaves the SIE to process the request.
|
||||
*/
|
||||
kvm_s390_vsie_kick(vcpu);
|
||||
|
Loading…
Reference in New Issue
Block a user