|
@@ -115,16 +115,16 @@ int kvm_vm_ioctl_register_coalesced_mmio(struct kvm *kvm,
|
|
|
if (dev == NULL)
|
|
|
return -EINVAL;
|
|
|
|
|
|
- mutex_lock(&kvm->lock);
|
|
|
+ down_write(&kvm->slots_lock);
|
|
|
if (dev->nb_zones >= KVM_COALESCED_MMIO_ZONE_MAX) {
|
|
|
- mutex_unlock(&kvm->lock);
|
|
|
+ up_write(&kvm->slots_lock);
|
|
|
return -ENOBUFS;
|
|
|
}
|
|
|
|
|
|
dev->zone[dev->nb_zones] = *zone;
|
|
|
dev->nb_zones++;
|
|
|
|
|
|
- mutex_unlock(&kvm->lock);
|
|
|
+ up_write(&kvm->slots_lock);
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -138,7 +138,7 @@ int kvm_vm_ioctl_unregister_coalesced_mmio(struct kvm *kvm,
|
|
|
if (dev == NULL)
|
|
|
return -EINVAL;
|
|
|
|
|
|
- mutex_lock(&kvm->lock);
|
|
|
+ down_write(&kvm->slots_lock);
|
|
|
|
|
|
i = dev->nb_zones;
|
|
|
while(i) {
|
|
@@ -156,7 +156,7 @@ int kvm_vm_ioctl_unregister_coalesced_mmio(struct kvm *kvm,
|
|
|
i--;
|
|
|
}
|
|
|
|
|
|
- mutex_unlock(&kvm->lock);
|
|
|
+ up_write(&kvm->slots_lock);
|
|
|
|
|
|
return 0;
|
|
|
}
|