Commit 70e335e16882df5b5d6971022e63c3603a1e8c23

Authored by Avi Kivity
Committed by Marcelo Tosatti
1 parent fa8273e954

KVM: Convert kvm->requests_lock to raw_spinlock_t

The code relies on kvm->requests_lock inhibiting preemption.

Noted by Jan Kiszka.

Signed-off-by: Avi Kivity <avi@redhat.com>

Showing 2 changed files with 4 additions and 4 deletions Side-by-side Diff

include/linux/kvm_host.h
... ... @@ -161,7 +161,7 @@
161 161  
162 162 struct kvm {
163 163 spinlock_t mmu_lock;
164   - spinlock_t requests_lock;
  164 + raw_spinlock_t requests_lock;
165 165 struct mutex slots_lock;
166 166 struct mm_struct *mm; /* userspace tied to this vm */
167 167 struct kvm_memslots *memslots;
... ... @@ -138,7 +138,7 @@
138 138  
139 139 zalloc_cpumask_var(&cpus, GFP_ATOMIC);
140 140  
141   - spin_lock(&kvm->requests_lock);
  141 + raw_spin_lock(&kvm->requests_lock);
142 142 me = smp_processor_id();
143 143 kvm_for_each_vcpu(i, vcpu, kvm) {
144 144 if (test_and_set_bit(req, &vcpu->requests))
... ... @@ -153,7 +153,7 @@
153 153 smp_call_function_many(cpus, ack_flush, NULL, 1);
154 154 else
155 155 called = false;
156   - spin_unlock(&kvm->requests_lock);
  156 + raw_spin_unlock(&kvm->requests_lock);
157 157 free_cpumask_var(cpus);
158 158 return called;
159 159 }
... ... @@ -409,7 +409,7 @@
409 409 kvm->mm = current->mm;
410 410 atomic_inc(&kvm->mm->mm_count);
411 411 spin_lock_init(&kvm->mmu_lock);
412   - spin_lock_init(&kvm->requests_lock);
  412 + raw_spin_lock_init(&kvm->requests_lock);
413 413 kvm_eventfd_init(kvm);
414 414 mutex_init(&kvm->lock);
415 415 mutex_init(&kvm->irq_lock);