diff options
author | Kevin Hilman <khilman@linaro.org> | 2015-06-04 14:43:38 -0700 |
---|---|---|
committer | Kevin Hilman <khilman@linaro.org> | 2015-06-04 14:43:38 -0700 |
commit | 94865bf8aa24aa359903de3c858a517243e20263 (patch) | |
tree | 950de82b3556dbab5a68a4f17aac8fb21af7c090 /virt | |
parent | 1a621b34f2a4bf8495bf801cd0024f063d561472 (diff) | |
parent | 474271f666ce974ee183057c022325b3833ecb39 (diff) |
Merge tag 'v3.14.43-rt42-lno1' of git://git.linaro.org/people/anders.roxell/linux-rt into linux-linaro-lsk-v3.14-rtlsk-v3.14-15.06-rt
Linux 3.14.43-rt42
Changes since v3.14.39-rt37:
- KVM: lapic: mark LAPIC timer handler as irqsafe
- KVM: use simple waitqueue for vcpu->wq
- hotplug: Use set_cpus_allowed_ptr() in sync_unplug_thread()
- rt, nohz_full: fix nohz_full for PREEMPT_RT_FULL
- kernel/irq_work: fix no_hz deadlock
* tag 'v3.14.43-rt42-lno1' of git://git.linaro.org/people/anders.roxell/linux-rt: (360 commits)
Linux 3.14.43-rt42 REBASE
rt, nohz_full: fix nohz_full for PREEMPT_RT_FULL
hotplug: Use set_cpus_allowed_ptr() in sync_unplug_thread()
KVM: use simple waitqueue for vcpu->wq
KVM: lapic: mark LAPIC timer handler as irqsafe
kernel/irq_work: fix no_hz deadlock
netpoll: guard the access to dev->npinfo with rcu_read_lock/unlock_bh() for CONFIG_PREEMPT_RT_FULL=y
Revert "timers: do not raise softirq unconditionally"
fs,btrfs: fix rt deadlock on extent_buffer->lock
staging: Mark rtl8821ae as broken
timers: Reduce future __run_timers() latency for first add to empty list
timers: Reduce future __run_timers() latency for newly emptied list
timers: Reduce __run_timers() latency for empty list
timers: Track total number of timers in list
fs/aio: simple simple work
lockdep: selftest: fix warnings due to missing PREEMPT_RT conditionals
thermal: Defer thermal wakups to threads
locking: ww_mutex: fix ww_mutex vs self-deadlock
Revert "rwsem-rt: Do not allow readers to nest"
sunrpc: make svc_xprt_do_enqueue() use get_cpu_light()
...
Diffstat (limited to 'virt')
-rw-r--r-- | virt/kvm/async_pf.c | 4 | ||||
-rw-r--r-- | virt/kvm/kvm_main.c | 16 |
2 files changed, 10 insertions, 10 deletions
diff --git a/virt/kvm/async_pf.c b/virt/kvm/async_pf.c index d6a3d0993d88..cd63d6993698 100644 --- a/virt/kvm/async_pf.c +++ b/virt/kvm/async_pf.c @@ -96,8 +96,8 @@ static void async_pf_execute(struct work_struct *work) trace_kvm_async_pf_completed(addr, gva); - if (waitqueue_active(&vcpu->wq)) - wake_up_interruptible(&vcpu->wq); + if (swaitqueue_active(&vcpu->wq)) + swait_wake_interruptible(&vcpu->wq); mmput(mm); kvm_put_kvm(vcpu->kvm); diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index 024f40795aa0..fa7f9cbf1a6f 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -220,7 +220,7 @@ int kvm_vcpu_init(struct kvm_vcpu *vcpu, struct kvm *kvm, unsigned id) vcpu->kvm = kvm; vcpu->vcpu_id = id; vcpu->pid = NULL; - init_waitqueue_head(&vcpu->wq); + init_swait_head(&vcpu->wq); kvm_async_pf_vcpu_init(vcpu); page = alloc_page(GFP_KERNEL | __GFP_ZERO); @@ -1694,10 +1694,10 @@ EXPORT_SYMBOL_GPL(mark_page_dirty); */ void kvm_vcpu_block(struct kvm_vcpu *vcpu) { - DEFINE_WAIT(wait); + DEFINE_SWAITER(wait); for (;;) { - prepare_to_wait(&vcpu->wq, &wait, TASK_INTERRUPTIBLE); + swait_prepare(&vcpu->wq, &wait, TASK_INTERRUPTIBLE); if (kvm_arch_vcpu_runnable(vcpu)) { kvm_make_request(KVM_REQ_UNHALT, vcpu); @@ -1711,7 +1711,7 @@ void kvm_vcpu_block(struct kvm_vcpu *vcpu) schedule(); } - finish_wait(&vcpu->wq, &wait); + swait_finish(&vcpu->wq, &wait); } EXPORT_SYMBOL_GPL(kvm_vcpu_block); @@ -1723,11 +1723,11 @@ void kvm_vcpu_kick(struct kvm_vcpu *vcpu) { int me; int cpu = vcpu->cpu; - wait_queue_head_t *wqp; + struct swait_head *wqp; wqp = kvm_arch_vcpu_wq(vcpu); - if (waitqueue_active(wqp)) { - wake_up_interruptible(wqp); + if (swaitqueue_active(wqp)) { + swait_wake_interruptible(wqp); ++vcpu->stat.halt_wakeup; } @@ -1832,7 +1832,7 @@ void kvm_vcpu_on_spin(struct kvm_vcpu *me) continue; if (vcpu == me) continue; - if (waitqueue_active(&vcpu->wq) && !kvm_arch_vcpu_runnable(vcpu)) + if (swaitqueue_active(&vcpu->wq) && !kvm_arch_vcpu_runnable(vcpu)) continue; if (!kvm_vcpu_eligible_for_directed_yield(vcpu)) continue; |