Re: v2.6.21.4-rt11

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 2007-06-10 at 10:34 +0000, Oleksandr Natalenko wrote:
> >     http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.21.4.tar.bz2
> >     http://people.redhat.com/mingo/realtime-preempt/patch-2.6.21.4-rt11
> kernel/built-in.o: In function `__schedule':
> (.sched.text+0xe0): undefined reference to `pick_next_task'
> make[1]: *** [.tmp_vmlinux1] Ошибка 1
> make[1]: Leaving directory `/usr/src/linux-2.6.21.4-rt11-cfs17-arsenic'
> make: *** [debian/stamp-build-kernel] Ошибка 2
> 
> It seems that patch is broken.

Yup, for CONFIG_SMP=n and for CONFIG_PREEMPT_RT=n.

Fix below

	tglx

Index: linux-2.6.21/kernel/sched.c
===================================================================
--- linux-2.6.21.orig/kernel/sched.c	2007-06-10 16:00:58.000000000 +0200
+++ linux-2.6.21/kernel/sched.c	2007-06-10 16:46:23.000000000 +0200
@@ -827,6 +827,25 @@ unsigned long weighted_cpuload(const int
 	return cpu_rq(cpu)->raw_weighted_load;
 }
 
+static inline struct task_struct *
+pick_next_task(struct rq *rq, struct task_struct *prev)
+{
+	struct sched_class *class = sched_class_highest;
+	u64 now = __rq_clock(rq);
+	struct task_struct *p;
+
+	prev->sched_class->put_prev_task(rq, prev, now);
+
+	do {
+		p = class->pick_next_task(rq, now);
+		if (p)
+			return p;
+		class = class->next;
+	} while (class);
+
+	return NULL;
+}
+
 #ifdef CONFIG_SMP
 
 static inline void __set_task_cpu(struct task_struct *p, unsigned int cpu)
@@ -1093,25 +1112,6 @@ next_in_queue:
 
 static int double_lock_balance(struct rq *this_rq, struct rq *busiest);
 
-static inline struct task_struct *
-pick_next_task(struct rq *rq, struct task_struct *prev)
-{
-	struct sched_class *class = sched_class_highest;
-	u64 now = __rq_clock(rq);
-	struct task_struct *p;
-
-	prev->sched_class->put_prev_task(rq, prev, now);
-
-	do {
-		p = class->pick_next_task(rq, now);
-		if (p)
-			return p;
-		class = class->next;
-	} while (class);
-
-	return NULL;
-}
-
 /*
  * Pull RT tasks from other CPUs in the RT-overload
  * case. Interrupts are disabled, local rq is locked.
Index: linux-2.6.21/kernel/time/clockevents.c
===================================================================
--- linux-2.6.21.orig/kernel/time/clockevents.c	2007-06-10 16:00:57.000000000 +0200
+++ linux-2.6.21/kernel/time/clockevents.c	2007-06-10 16:45:40.000000000 +0200
@@ -18,6 +18,7 @@
 #include <linux/notifier.h>
 #include <linux/smp.h>
 #include <linux/sysdev.h>
+#include <linux/sched.h>
 
 /* The registered clock event devices */
 static LIST_HEAD(clockevent_devices);


-
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux