Index: linux-2.6.11-ck7/kernel/sched.c
===================================================================
--- linux-2.6.11-ck7.orig/kernel/sched.c	2005-05-01 10:36:05.000000000 +1000
+++ linux-2.6.11-ck7/kernel/sched.c	2005-05-01 10:36:06.000000000 +1000
@@ -470,7 +470,7 @@ static inline void sched_info_switch(tas
 /*
  * Get nanosecond clock difference without overflowing unsigned long.
  */
-static unsigned long ns_diff(unsigned long long v1, unsigned long long v2)
+static inline unsigned long ns_diff(unsigned long long v1, unsigned long long v2)
 {
 	unsigned long long vdiff;
 	if (unlikely(v1 < v2))
@@ -494,7 +494,7 @@ static inline int task_queued(task_t *ta
 /*
  * Adding/removing a task to/from a runqueue:
  */
-static void dequeue_task(struct task_struct *p, runqueue_t *rq)
+static inline void dequeue_task(struct task_struct *p, runqueue_t *rq)
 {
 	list_del_init(&p->run_list);
 	if (list_empty(rq->queue + p->prio))
@@ -502,7 +502,7 @@ static void dequeue_task(struct task_str
 	p->ns_debit = 0;
 }
 
-static void enqueue_task(struct task_struct *p, runqueue_t *rq)
+static inline void enqueue_task(struct task_struct *p, runqueue_t *rq)
 {
 	list_add_tail(&p->run_list, rq->queue + p->prio);
 	__set_bit(p->prio, rq->bitmap);
@@ -745,7 +745,7 @@ static void activate_task(task_t *p, run
 /*
  * deactivate_task - remove a task from the runqueue.
  */
-static void deactivate_task(struct task_struct *p, runqueue_t *rq)
+static inline void deactivate_task(struct task_struct *p, runqueue_t *rq)
 {
 	rq->nr_running--;
 	dequeue_task(p, rq);
@@ -2353,7 +2353,7 @@ out:
 }
 
 #ifdef CONFIG_SCHED_SMT
-static void wake_sleeping_dependent(int this_cpu, runqueue_t *this_rq)
+static inline void wake_sleeping_dependent(int this_cpu, runqueue_t *this_rq)
 {
 	struct sched_domain *sd = this_rq->sd;
 	cpumask_t sibling_map;
@@ -2398,7 +2398,7 @@ static void wake_sleeping_dependent(int 
 	 */
 }
 
-static int dependent_sleeper(int this_cpu, runqueue_t *this_rq)
+static inline int dependent_sleeper(int this_cpu, runqueue_t *this_rq)
 {
 	struct sched_domain *sd = this_rq->sd;
 	cpumask_t sibling_map;
@@ -2613,7 +2613,7 @@ switch_tasks:
 	if (next == rq->idle)
 		schedstat_inc(rq, sched_goidle);
 	prev->timestamp = now;
-	if (next->flags & PF_YIELDED) {
+	if (unlikely(next->flags & PF_YIELDED)) {
 		/*
 		 * Tasks that have yield()ed get requeued at normal priority
 		 */

