diff options
author | Michael S. Tsirkin <mst@redhat.com> | 2009-06-29 15:24:14 -0400 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2009-09-10 01:33:04 -0400 |
commit | d5c2dcc36aaf4dfdf9e01513493c71d71715f817 (patch) | |
tree | 753b37e9f9530ed09670a89c94d31effb630a6c7 /virt/kvm/coalesced_mmio.c | |
parent | 69fa2d78653918d200220ca62d44715827e6d617 (diff) |
KVM: switch coalesced mmio changes to slots_lock
switch coalesced mmio slots_lock. slots_lock is already taken for read
everywhere, so we only need to take it for write when changing zones.
This is in preparation to removing in_range and kvm->lock around it.
[avi: fix build]
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'virt/kvm/coalesced_mmio.c')
-rw-r--r-- | virt/kvm/coalesced_mmio.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/virt/kvm/coalesced_mmio.c b/virt/kvm/coalesced_mmio.c index 397f41936698..b40946c1237d 100644 --- a/virt/kvm/coalesced_mmio.c +++ b/virt/kvm/coalesced_mmio.c | |||
@@ -115,16 +115,16 @@ int kvm_vm_ioctl_register_coalesced_mmio(struct kvm *kvm, | |||
115 | if (dev == NULL) | 115 | if (dev == NULL) |
116 | return -EINVAL; | 116 | return -EINVAL; |
117 | 117 | ||
118 | mutex_lock(&kvm->lock); | 118 | down_write(&kvm->slots_lock); |
119 | if (dev->nb_zones >= KVM_COALESCED_MMIO_ZONE_MAX) { | 119 | if (dev->nb_zones >= KVM_COALESCED_MMIO_ZONE_MAX) { |
120 | mutex_unlock(&kvm->lock); | 120 | up_write(&kvm->slots_lock); |
121 | return -ENOBUFS; | 121 | return -ENOBUFS; |
122 | } | 122 | } |
123 | 123 | ||
124 | dev->zone[dev->nb_zones] = *zone; | 124 | dev->zone[dev->nb_zones] = *zone; |
125 | dev->nb_zones++; | 125 | dev->nb_zones++; |
126 | 126 | ||
127 | mutex_unlock(&kvm->lock); | 127 | up_write(&kvm->slots_lock); |
128 | return 0; | 128 | return 0; |
129 | } | 129 | } |
130 | 130 | ||
@@ -138,7 +138,7 @@ int kvm_vm_ioctl_unregister_coalesced_mmio(struct kvm *kvm, | |||
138 | if (dev == NULL) | 138 | if (dev == NULL) |
139 | return -EINVAL; | 139 | return -EINVAL; |
140 | 140 | ||
141 | mutex_lock(&kvm->lock); | 141 | down_write(&kvm->slots_lock); |
142 | 142 | ||
143 | i = dev->nb_zones; | 143 | i = dev->nb_zones; |
144 | while(i) { | 144 | while(i) { |
@@ -156,7 +156,7 @@ int kvm_vm_ioctl_unregister_coalesced_mmio(struct kvm *kvm, | |||
156 | i--; | 156 | i--; |
157 | } | 157 | } |
158 | 158 | ||
159 | mutex_unlock(&kvm->lock); | 159 | up_write(&kvm->slots_lock); |
160 | 160 | ||
161 | return 0; | 161 | return 0; |
162 | } | 162 | } |