diff options
Diffstat (limited to 'kernel/sched.c')
-rw-r--r-- | kernel/sched.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index 12d291bf3379..4d46e90f59c3 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -178,13 +178,6 @@ static unsigned int task_timeslice(task_t *p) | |||
178 | #define task_hot(p, now, sd) ((long long) ((now) - (p)->last_ran) \ | 178 | #define task_hot(p, now, sd) ((long long) ((now) - (p)->last_ran) \ |
179 | < (long long) (sd)->cache_hot_time) | 179 | < (long long) (sd)->cache_hot_time) |
180 | 180 | ||
181 | void __put_task_struct_cb(struct rcu_head *rhp) | ||
182 | { | ||
183 | __put_task_struct(container_of(rhp, struct task_struct, rcu)); | ||
184 | } | ||
185 | |||
186 | EXPORT_SYMBOL_GPL(__put_task_struct_cb); | ||
187 | |||
188 | /* | 181 | /* |
189 | * These are the runqueue data structures: | 182 | * These are the runqueue data structures: |
190 | */ | 183 | */ |
@@ -4028,6 +4021,8 @@ static inline void __cond_resched(void) | |||
4028 | */ | 4021 | */ |
4029 | if (unlikely(preempt_count())) | 4022 | if (unlikely(preempt_count())) |
4030 | return; | 4023 | return; |
4024 | if (unlikely(system_state != SYSTEM_RUNNING)) | ||
4025 | return; | ||
4031 | do { | 4026 | do { |
4032 | add_preempt_count(PREEMPT_ACTIVE); | 4027 | add_preempt_count(PREEMPT_ACTIVE); |
4033 | schedule(); | 4028 | schedule(); |
@@ -4333,6 +4328,7 @@ void __devinit init_idle(task_t *idle, int cpu) | |||
4333 | runqueue_t *rq = cpu_rq(cpu); | 4328 | runqueue_t *rq = cpu_rq(cpu); |
4334 | unsigned long flags; | 4329 | unsigned long flags; |
4335 | 4330 | ||
4331 | idle->timestamp = sched_clock(); | ||
4336 | idle->sleep_avg = 0; | 4332 | idle->sleep_avg = 0; |
4337 | idle->array = NULL; | 4333 | idle->array = NULL; |
4338 | idle->prio = MAX_PRIO; | 4334 | idle->prio = MAX_PRIO; |