|
@@ -2660,6 +2660,7 @@ asmlinkage void __sched notrace preempt_schedule(void)
|
|
|
} while (need_resched());
|
|
|
}
|
|
|
EXPORT_SYMBOL(preempt_schedule);
|
|
|
+#endif /* CONFIG_PREEMPT */
|
|
|
|
|
|
/*
|
|
|
* this is the entry point to schedule() from kernel preemption
|
|
@@ -2693,8 +2694,6 @@ asmlinkage void __sched preempt_schedule_irq(void)
|
|
|
exception_exit(prev_state);
|
|
|
}
|
|
|
|
|
|
-#endif /* CONFIG_PREEMPT */
|
|
|
-
|
|
|
int default_wake_function(wait_queue_t *curr, unsigned mode, int wake_flags,
|
|
|
void *key)
|
|
|
{
|
|
@@ -4762,7 +4761,7 @@ static void rq_attach_root(struct rq *rq, struct root_domain *rd)
|
|
|
cpumask_clear_cpu(rq->cpu, old_rd->span);
|
|
|
|
|
|
/*
|
|
|
- * If we dont want to free the old_rt yet then
|
|
|
+ * If we dont want to free the old_rd yet then
|
|
|
* set old_rd to NULL to skip the freeing later
|
|
|
* in this function:
|
|
|
*/
|
|
@@ -4910,8 +4909,9 @@ static void update_top_cache_domain(int cpu)
|
|
|
if (sd) {
|
|
|
id = cpumask_first(sched_domain_span(sd));
|
|
|
size = cpumask_weight(sched_domain_span(sd));
|
|
|
- rcu_assign_pointer(per_cpu(sd_busy, cpu), sd->parent);
|
|
|
+ sd = sd->parent; /* sd_busy */
|
|
|
}
|
|
|
+ rcu_assign_pointer(per_cpu(sd_busy, cpu), sd);
|
|
|
|
|
|
rcu_assign_pointer(per_cpu(sd_llc, cpu), sd);
|
|
|
per_cpu(sd_llc_size, cpu) = size;
|