KVM: switch pit creation to slots_lock
switch pit creation to slots_lock. slots_lock is already taken for read everywhere, so we only need to take it for write when creating pit. This is in preparation to removing in_range and kvm->lock around it. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
committed by
Avi Kivity
parent
d5c2dcc36a
commit
108b56690f
@@ -2188,7 +2188,7 @@ long kvm_arch_vm_ioctl(struct file *filp,
|
|||||||
sizeof(struct kvm_pit_config)))
|
sizeof(struct kvm_pit_config)))
|
||||||
goto out;
|
goto out;
|
||||||
create_pit:
|
create_pit:
|
||||||
mutex_lock(&kvm->lock);
|
down_write(&kvm->slots_lock);
|
||||||
r = -EEXIST;
|
r = -EEXIST;
|
||||||
if (kvm->arch.vpit)
|
if (kvm->arch.vpit)
|
||||||
goto create_pit_unlock;
|
goto create_pit_unlock;
|
||||||
@@ -2197,7 +2197,7 @@ long kvm_arch_vm_ioctl(struct file *filp,
|
|||||||
if (kvm->arch.vpit)
|
if (kvm->arch.vpit)
|
||||||
r = 0;
|
r = 0;
|
||||||
create_pit_unlock:
|
create_pit_unlock:
|
||||||
mutex_unlock(&kvm->lock);
|
up_write(&kvm->slots_lock);
|
||||||
break;
|
break;
|
||||||
case KVM_IRQ_LINE_STATUS:
|
case KVM_IRQ_LINE_STATUS:
|
||||||
case KVM_IRQ_LINE: {
|
case KVM_IRQ_LINE: {
|
||||||
|
Reference in New Issue
Block a user