summaryrefslogtreecommitdiff
path: root/kernel/sched/core.c
diff options
context:
space:
mode:
authorSteven Rostedt (VMware) <rostedt@goodmis.org>2017-12-14 22:59:02 -0500
committerSteven Rostedt (VMware) <rostedt@goodmis.org>2017-12-14 22:59:02 -0500
commit7b5d49941dedf1b6634c2b0a110dc2a6f12180c3 (patch)
tree0be6ff4b2a5933898f7fc639746112ca0b7fefc6 /kernel/sched/core.c
parent1dcf2103d80a19dc9562e63eb2fb0084e362c3f1 (diff)
parent8743ce3d7c9698285310920c443c086e337aef44 (diff)
downloadlinux-rt-7b5d49941dedf1b6634c2b0a110dc2a6f12180c3.tar.gz
Merge tag 'v4.9.66' into v4.9-rt
This is the 4.9.66 stable release Conflicts: kernel/sched/rt.c
Diffstat (limited to 'kernel/sched/core.c')
-rw-r--r--kernel/sched/core.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 034a738f1bf7..ed1ebcc2ff3d 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -559,8 +559,7 @@ void resched_cpu(int cpu)
struct rq *rq = cpu_rq(cpu);
unsigned long flags;
- if (!raw_spin_trylock_irqsave(&rq->lock, flags))
- return;
+ raw_spin_lock_irqsave(&rq->lock, flags);
resched_curr(rq);
raw_spin_unlock_irqrestore(&rq->lock, flags);
}
@@ -6223,6 +6222,13 @@ static int init_rootdomain(struct root_domain *rd)
if (!zalloc_cpumask_var(&rd->rto_mask, GFP_KERNEL))
goto free_dlo_mask;
+#ifdef HAVE_RT_PUSH_IPI
+ rd->rto_cpu = -1;
+ raw_spin_lock_init(&rd->rto_lock);
+ init_irq_work(&rd->rto_push_work, rto_push_irq_work_func);
+ rd->rto_push_work.flags |= IRQ_WORK_HARD_IRQ;
+#endif
+
init_dl_bw(&rd->dl_bw);
if (cpudl_init(&rd->cpudl) != 0)
goto free_dlo_mask;