mirror of https://gitee.com/openkylin/linux.git
KVM: s390: remove _bh locking from start_stop_lock
The start_stop_lock is no longer acquired when in atomic context, therefore we can convert it into an ordinary spin_lock. Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com> Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com> Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
This commit is contained in:
parent
4ae3c0815f
commit
433b9ee43c
|
@ -1478,7 +1478,7 @@ void kvm_s390_vcpu_start(struct kvm_vcpu *vcpu)
|
||||||
|
|
||||||
trace_kvm_s390_vcpu_start_stop(vcpu->vcpu_id, 1);
|
trace_kvm_s390_vcpu_start_stop(vcpu->vcpu_id, 1);
|
||||||
/* Only one cpu at a time may enter/leave the STOPPED state. */
|
/* Only one cpu at a time may enter/leave the STOPPED state. */
|
||||||
spin_lock_bh(&vcpu->kvm->arch.start_stop_lock);
|
spin_lock(&vcpu->kvm->arch.start_stop_lock);
|
||||||
online_vcpus = atomic_read(&vcpu->kvm->online_vcpus);
|
online_vcpus = atomic_read(&vcpu->kvm->online_vcpus);
|
||||||
|
|
||||||
for (i = 0; i < online_vcpus; i++) {
|
for (i = 0; i < online_vcpus; i++) {
|
||||||
|
@ -1504,7 +1504,7 @@ void kvm_s390_vcpu_start(struct kvm_vcpu *vcpu)
|
||||||
* Let's play safe and flush the VCPU at startup.
|
* Let's play safe and flush the VCPU at startup.
|
||||||
*/
|
*/
|
||||||
vcpu->arch.sie_block->ihcpu = 0xffff;
|
vcpu->arch.sie_block->ihcpu = 0xffff;
|
||||||
spin_unlock_bh(&vcpu->kvm->arch.start_stop_lock);
|
spin_unlock(&vcpu->kvm->arch.start_stop_lock);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1518,7 +1518,7 @@ void kvm_s390_vcpu_stop(struct kvm_vcpu *vcpu)
|
||||||
|
|
||||||
trace_kvm_s390_vcpu_start_stop(vcpu->vcpu_id, 0);
|
trace_kvm_s390_vcpu_start_stop(vcpu->vcpu_id, 0);
|
||||||
/* Only one cpu at a time may enter/leave the STOPPED state. */
|
/* Only one cpu at a time may enter/leave the STOPPED state. */
|
||||||
spin_lock_bh(&vcpu->kvm->arch.start_stop_lock);
|
spin_lock(&vcpu->kvm->arch.start_stop_lock);
|
||||||
online_vcpus = atomic_read(&vcpu->kvm->online_vcpus);
|
online_vcpus = atomic_read(&vcpu->kvm->online_vcpus);
|
||||||
|
|
||||||
/* Need to lock access to action_bits to avoid a SIGP race condition */
|
/* Need to lock access to action_bits to avoid a SIGP race condition */
|
||||||
|
@ -1547,7 +1547,7 @@ void kvm_s390_vcpu_stop(struct kvm_vcpu *vcpu)
|
||||||
__enable_ibs_on_vcpu(started_vcpu);
|
__enable_ibs_on_vcpu(started_vcpu);
|
||||||
}
|
}
|
||||||
|
|
||||||
spin_unlock_bh(&vcpu->kvm->arch.start_stop_lock);
|
spin_unlock(&vcpu->kvm->arch.start_stop_lock);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue