Skip to contentSkip to conversation

Linux 2.4.19-pre7-jam4

PATCH Norbert Kiesel 3 participants 3 messages Apr 22, 2002

lore
Share & tools
lore
#0 lore raw

Hi,

I had two compile problems:
1) sched.c complains about missing local_bh_count, TQUEUE_BH, ...
2) init/do_mounts.c complains about SCHED_YIELD (if initrd is enabled)

The following patch fixes both problems for me.

--nk

init/do_mounts.c +1 -2
diff -ur linux/init/do_mounts.c linux-nk/init/do_mounts.c
@@ -775,8 +775,7 @@
 	pid = kernel_thread(do_linuxrc, "/linuxrc", SIGCHLD);
 	if (pid > 0) {
 		while (pid != wait(&i)) {
-			current->policy |= SCHED_YIELD;
-			schedule();
+			yield();
 		}
 	}
 
kernel/sched.c +1 -0
diff -ur linux/kernel/sched.c linux-nk/kernel/sched.c
@@ -19,6 +19,7 @@
 #include <linux/smp_lock.h>
 #include <asm/mmu_context.h>
 #include <linux/kernel_stat.h>
+#include <linux/interrupt.h>
 
 /*
  * Priority of a process goes from 0 to MAX_PRIO-1.  The
Signature · 1 line
Key fingerprint = 6C58 F18D 4747 3295 F2DB  15C1 3882 4302 F8B4 C11C
init/do_mounts.c +1 -2
diff -ur linux/init/do_mounts.c linux-nk/init/do_mounts.c
@@ -775,8 +775,7 @@
 	pid = kernel_thread(do_linuxrc, "/linuxrc", SIGCHLD);
 	if (pid > 0) {
 		while (pid != wait(&i)) {
-			current->policy |= SCHED_YIELD;
-			schedule();
+			yield();
 		}
 	}
 
kernel/sched.c +1 -0
diff -ur linux/kernel/sched.c linux-nk/kernel/sched.c
@@ -19,6 +19,7 @@
 #include <linux/smp_lock.h>
 #include <asm/mmu_context.h>
 #include <linux/kernel_stat.h>
+#include <linux/interrupt.h>
 
 /*
  * Priority of a process goes from 0 to MAX_PRIO-1.  The
#1 lore raw
Quoted 8 lines · On 2002.04.22 Norbert Kiesel wrote:

Hi,

I had two compile problems:
1) sched.c complains about missing local_bh_count, TQUEUE_BH, ...
2) init/do_mounts.c complains about SCHED_YIELD (if initrd is enabled)

The following patch fixes both problems for me.

[...]

Yup, there are files not covered by 20-sched-O1-rml-1. Fast search:

werewolf:/usr/src/linux# grep -r SCHED_YIELD *
arch/alpha/mm/fault.c:          current->policy |= SCHED_YIELD;
arch/mips/mm/fault.c:           tsk->policy |= SCHED_YIELD;
arch/ppc/mm/fault.c:            current->policy |= SCHED_YIELD;
arch/m68k/mm/fault.c:           current->policy |= SCHED_YIELD;
arch/arm/mm/fault-common.c:     tsk->policy |= SCHED_YIELD;
arch/sh/mm/fault.c:             current->policy |= SCHED_YIELD;
arch/ia64/mm/fault.c:           current->policy |= SCHED_YIELD;
arch/mips64/mm/fault.c:         tsk->policy |= SCHED_YIELD;
arch/s390/mm/fault.c:           tsk->policy |= SCHED_YIELD;
arch/s390x/mm/fault.c:          tsk->policy |= SCHED_YIELD;
init/do_mounts.c:                       current->policy |= SCHED_YIELD;

I will try to make similar changes for those in a -jam5.

Many thanks.

Signature · 4 lines
J.A. Magallon                           #  Let the source be with you...        
mailto:[email protected]
Mandrake Linux release 8.3 (Cooker) for i586
Linux werewolf 2.4.19-pre7-jam4 #1 SMP lun abr 22 00:52:56 CEST 2002 i686
#2 lore raw
Quoted 1 line · J.A. Magallon
Quoted 1 line

1) sched.c complains about missing local_bh_count, TQUEUE_BH, ...

you need to #include linux/interrupts.h in sched.c

Quoted 15 lines

Yup, there are files not covered by 20-sched-O1-rml-1. Fast search:

werewolf:/usr/src/linux# grep -r SCHED_YIELD *
arch/alpha/mm/fault.c:          current->policy |= SCHED_YIELD;
arch/mips/mm/fault.c:           tsk->policy |= SCHED_YIELD;
arch/ppc/mm/fault.c:            current->policy |= SCHED_YIELD;
arch/m68k/mm/fault.c:           current->policy |= SCHED_YIELD;
arch/arm/mm/fault-common.c:     tsk->policy |= SCHED_YIELD;
arch/sh/mm/fault.c:             current->policy |= SCHED_YIELD;
arch/ia64/mm/fault.c:           current->policy |= SCHED_YIELD;
arch/mips64/mm/fault.c:         tsk->policy |= SCHED_YIELD;
arch/s390/mm/fault.c:           tsk->policy |= SCHED_YIELD;
arch/s390x/mm/fault.c:          tsk->policy |= SCHED_YIELD;
init/do_mounts.c:                       current->policy |= SCHED_YIELD;

I did not touch the arch-dependent code because there are other changes the arches require that need to be made ...

Robert Love