From 27fe1efe30cd5120674e31d42088a6725d6bdaa0 Mon Sep 17 00:00:00 2001 From: Con Kolivas Date: Thu, 20 Oct 2016 07:14:56 +1100 Subject: [PATCH 59/80] Build fix for UP. --- kernel/sched/MuQSS.c | 50 +++++++++++++++++++++++++------------------------- kernel/sched/MuQSS.h | 7 +++---- 2 files changed, 28 insertions(+), 29 deletions(-) diff --git a/kernel/sched/MuQSS.c b/kernel/sched/MuQSS.c index 3fb5d02..36175d0 100644 --- a/kernel/sched/MuQSS.c +++ b/kernel/sched/MuQSS.c @@ -1840,33 +1840,9 @@ static int ttwu_remote(struct task_struct *p, int wake_flags) return ret; } -void wake_up_if_idle(int cpu) -{ - struct rq *rq = cpu_rq(cpu); - unsigned long flags; - - rcu_read_lock(); - - if (!is_idle_task(rcu_dereference(rq->curr))) - goto out; - - if (set_nr_if_polling(rq->idle)) { - trace_sched_wake_idle_without_ipi(cpu); - } else { - rq_lock_irqsave(rq, &flags); - if (likely(is_idle_task(rq->curr))) - smp_send_reschedule(cpu); - /* Else cpu is not in idle, do nothing here */ - rq_unlock_irqrestore(rq, &flags); - } - -out: - rcu_read_unlock(); -} - +#ifdef CONFIG_SMP static bool sched_smp_initialized __read_mostly; -#ifdef CONFIG_SMP void sched_ttwu_pending(void) { struct rq *rq = this_rq(); @@ -1933,6 +1909,30 @@ static void ttwu_queue_remote(struct task_struct *p, int cpu, int wake_flags) } } +void wake_up_if_idle(int cpu) +{ + struct rq *rq = cpu_rq(cpu); + unsigned long flags; + + rcu_read_lock(); + + if (!is_idle_task(rcu_dereference(rq->curr))) + goto out; + + if (set_nr_if_polling(rq->idle)) { + trace_sched_wake_idle_without_ipi(cpu); + } else { + rq_lock_irqsave(rq, &flags); + if (likely(is_idle_task(rq->curr))) + smp_send_reschedule(cpu); + /* Else cpu is not in idle, do nothing here */ + rq_unlock_irqrestore(rq, &flags); + } + +out: + rcu_read_unlock(); +} + static int valid_task_cpu(struct task_struct *p) { cpumask_t valid_mask; diff --git a/kernel/sched/MuQSS.h b/kernel/sched/MuQSS.h index b0fe03e..fc711a5 100644 --- a/kernel/sched/MuQSS.h +++ b/kernel/sched/MuQSS.h @@ -213,12 +213,11 @@ static inline void unregister_sched_domain_sysctl(void) } #endif -extern void sched_ttwu_pending(void); - #ifdef CONFIG_SMP - +extern void sched_ttwu_pending(void); extern void set_cpus_allowed_common(struct task_struct *p, const struct cpumask *new_mask); - +#else +static inline void sched_ttwu_pending(void) { } #endif #ifdef CONFIG_CPU_IDLE -- 2.7.4