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

Commit 79fac95e authored by Marcelo Tosatti's avatar Marcelo Tosatti
Browse files

KVM: convert slots_lock to a mutex

parent f656ce01
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1834,7 +1834,7 @@ int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm,
	struct kvm_memory_slot *memslot;
	int is_dirty = 0;

	down_write(&kvm->slots_lock);
	mutex_lock(&kvm->slots_lock);
	spin_lock(&kvm->arch.dirty_log_lock);

	r = kvm_ia64_sync_dirty_log(kvm, log);
@@ -1854,7 +1854,7 @@ int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm,
	}
	r = 0;
out:
	up_write(&kvm->slots_lock);
	mutex_unlock(&kvm->slots_lock);
	spin_unlock(&kvm->arch.dirty_log_lock);
	return r;
}
+2 −2
Original line number Diff line number Diff line
@@ -857,7 +857,7 @@ int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm,
	int is_dirty = 0;
	int r, n;

	down_write(&kvm->slots_lock);
	mutex_lock(&kvm->slots_lock);

	r = kvm_get_dirty_log(kvm, log, &is_dirty);
	if (r)
@@ -879,7 +879,7 @@ int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm,

	r = 0;
out:
	up_write(&kvm->slots_lock);
	mutex_unlock(&kvm->slots_lock);
	return r;
}

+1 −1
Original line number Diff line number Diff line
@@ -605,7 +605,7 @@ static const struct kvm_io_device_ops speaker_dev_ops = {
	.write    = speaker_ioport_write,
};

/* Caller must have writers lock on slots_lock */
/* Caller must hold slots_lock */
struct kvm_pit *kvm_create_pit(struct kvm *kvm, u32 flags)
{
	struct kvm_pit *pit;
+2 −2
Original line number Diff line number Diff line
@@ -533,9 +533,9 @@ struct kvm_pic *kvm_create_pic(struct kvm *kvm)
	 * Initialize PIO device
	 */
	kvm_iodevice_init(&s->dev, &picdev_ops);
	down_write(&kvm->slots_lock);
	mutex_lock(&kvm->slots_lock);
	ret = kvm_io_bus_register_dev(kvm, KVM_PIO_BUS, &s->dev);
	up_write(&kvm->slots_lock);
	mutex_unlock(&kvm->slots_lock);
	if (ret < 0) {
		kfree(s);
		return NULL;
+4 −4
Original line number Diff line number Diff line
@@ -2223,7 +2223,7 @@ static int alloc_apic_access_page(struct kvm *kvm)
	struct kvm_userspace_memory_region kvm_userspace_mem;
	int r = 0;

	down_write(&kvm->slots_lock);
	mutex_lock(&kvm->slots_lock);
	if (kvm->arch.apic_access_page)
		goto out;
	kvm_userspace_mem.slot = APIC_ACCESS_PAGE_PRIVATE_MEMSLOT;
@@ -2236,7 +2236,7 @@ static int alloc_apic_access_page(struct kvm *kvm)

	kvm->arch.apic_access_page = gfn_to_page(kvm, 0xfee00);
out:
	up_write(&kvm->slots_lock);
	mutex_unlock(&kvm->slots_lock);
	return r;
}

@@ -2245,7 +2245,7 @@ static int alloc_identity_pagetable(struct kvm *kvm)
	struct kvm_userspace_memory_region kvm_userspace_mem;
	int r = 0;

	down_write(&kvm->slots_lock);
	mutex_lock(&kvm->slots_lock);
	if (kvm->arch.ept_identity_pagetable)
		goto out;
	kvm_userspace_mem.slot = IDENTITY_PAGETABLE_PRIVATE_MEMSLOT;
@@ -2260,7 +2260,7 @@ static int alloc_identity_pagetable(struct kvm *kvm)
	kvm->arch.ept_identity_pagetable = gfn_to_page(kvm,
			kvm->arch.ept_identity_map_addr >> PAGE_SHIFT);
out:
	up_write(&kvm->slots_lock);
	mutex_unlock(&kvm->slots_lock);
	return r;
}

Loading