Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 433b9ee4 authored by David Hildenbrand's avatar David Hildenbrand Committed by Christian Borntraeger
Browse files

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: default avatarDavid Hildenbrand <dahi@linux.vnet.ibm.com>
Reviewed-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
Acked-by: default avatarCornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
parent 4ae3c081
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -1478,7 +1478,7 @@ void kvm_s390_vcpu_start(struct kvm_vcpu *vcpu)

	trace_kvm_s390_vcpu_start_stop(vcpu->vcpu_id, 1);
	/* 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);

	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.
	 */
	vcpu->arch.sie_block->ihcpu  = 0xffff;
	spin_unlock_bh(&vcpu->kvm->arch.start_stop_lock);
	spin_unlock(&vcpu->kvm->arch.start_stop_lock);
	return;
}

@@ -1518,7 +1518,7 @@ void kvm_s390_vcpu_stop(struct kvm_vcpu *vcpu)

	trace_kvm_s390_vcpu_start_stop(vcpu->vcpu_id, 0);
	/* 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);

	/* 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);
	}

	spin_unlock_bh(&vcpu->kvm->arch.start_stop_lock);
	spin_unlock(&vcpu->kvm->arch.start_stop_lock);
	return;
}