aboutsummaryrefslogtreecommitdiff
path: root/virt
diff options
context:
space:
mode:
authorKevin Hilman <khilman@linaro.org>2015-06-04 14:43:38 -0700
committerKevin Hilman <khilman@linaro.org>2015-06-04 14:43:38 -0700
commit94865bf8aa24aa359903de3c858a517243e20263 (patch)
tree950de82b3556dbab5a68a4f17aac8fb21af7c090 /virt
parent1a621b34f2a4bf8495bf801cd0024f063d561472 (diff)
parent474271f666ce974ee183057c022325b3833ecb39 (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.c4
-rw-r--r--virt/kvm/kvm_main.c16
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;