

With CONFIG_SMP=n, CONFIG_PREEMPT=y, CONFIG_DEBUG_SPINLOCK=y we get many
undefined refs to kernel_flag.

This is because spinlock debugging works on uniprocessor kernels now, and it
stores state inside the spinlock structure to do this.

Having working spinlock debugging on UP kernels seems more important than
saving four bytes, so...




 kernel/ksyms.c |    2 ++
 kernel/sched.c |    2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff -puN kernel/ksyms.c~resurrect-kernel_flag kernel/ksyms.c
--- 25/kernel/ksyms.c~resurrect-kernel_flag	2003-03-08 21:43:58.000000000 -0800
+++ 25-akpm/kernel/ksyms.c	2003-03-08 21:43:58.000000000 -0800
@@ -485,6 +485,8 @@ EXPORT_SYMBOL(task_nice);
 EXPORT_SYMBOL_GPL(idle_cpu);
 #if CONFIG_SMP
 EXPORT_SYMBOL_GPL(set_cpus_allowed);
+#endif
+#if CONFIG_SMP || CONFIG_PREEMPT
 EXPORT_SYMBOL(kernel_flag);
 #endif
 EXPORT_SYMBOL(jiffies);
diff -puN kernel/sched.c~resurrect-kernel_flag kernel/sched.c
--- 25/kernel/sched.c~resurrect-kernel_flag	2003-03-08 21:43:58.000000000 -0800
+++ 25-akpm/kernel/sched.c	2003-03-08 21:43:58.000000000 -0800
@@ -2426,7 +2426,7 @@ __init int migration_init(void)
 
 #endif
 
-#if CONFIG_SMP
+#if CONFIG_SMP || CONFIG_PREEMPT
 /*
  * The 'big kernel lock'
  *

_
