diff -urpN -X /home/fletch/.diff.exclude 420-sched_interactive/arch/i386/kernel/entry.S 430-kgdb_cleanup/arch/i386/kernel/entry.S
--- 420-sched_interactive/arch/i386/kernel/entry.S	Tue Sep  2 10:14:10 2003
+++ 430-kgdb_cleanup/arch/i386/kernel/entry.S	Tue Sep  2 10:22:00 2003
@@ -49,6 +49,10 @@
 #include <asm/page.h>
 #include "irq_vectors.h"
 
+#ifndef CONFIG_KGDB_THREAD
+#define user_schedule schedule
+#endif
+
 EBX		= 0x00
 ECX		= 0x04
 EDX		= 0x08
diff -urpN -X /home/fletch/.diff.exclude 420-sched_interactive/arch/sparc64/kernel/rtrap.S 430-kgdb_cleanup/arch/sparc64/kernel/rtrap.S
--- 420-sched_interactive/arch/sparc64/kernel/rtrap.S	Tue Sep  2 10:14:11 2003
+++ 430-kgdb_cleanup/arch/sparc64/kernel/rtrap.S	Tue Sep  2 10:22:00 2003
@@ -15,6 +15,10 @@
 #include <asm/visasm.h>
 #include <asm/processor.h>
 
+#ifndef CONFIG_KGDB_THREAD
+#define user_schedule schedule
+#endif
+
 #define		RTRAP_PSTATE		(PSTATE_RMO|PSTATE_PEF|PSTATE_PRIV|PSTATE_IE)
 #define		RTRAP_PSTATE_IRQOFF	(PSTATE_RMO|PSTATE_PEF|PSTATE_PRIV)
 #define		RTRAP_PSTATE_AG_IRQOFF	(PSTATE_RMO|PSTATE_PEF|PSTATE_PRIV|PSTATE_AG)
diff -urpN -X /home/fletch/.diff.exclude 420-sched_interactive/arch/x86_64/kernel/entry.S 430-kgdb_cleanup/arch/x86_64/kernel/entry.S
--- 420-sched_interactive/arch/x86_64/kernel/entry.S	Tue Sep  2 10:14:11 2003
+++ 430-kgdb_cleanup/arch/x86_64/kernel/entry.S	Tue Sep  2 10:22:00 2003
@@ -46,6 +46,10 @@
 
 #define PDAREF(field) %gs:field	 		
 
+#ifndef CONFIG_KGDB_THREAD
+#define user_schedule schedule
+#endif
+
 #ifdef CONFIG_PREEMPT
 #define preempt_stop cli
 #else
diff -urpN -X /home/fletch/.diff.exclude 420-sched_interactive/include/linux/sched.h 430-kgdb_cleanup/include/linux/sched.h
--- 420-sched_interactive/include/linux/sched.h	Tue Sep  2 10:14:11 2003
+++ 430-kgdb_cleanup/include/linux/sched.h	Tue Sep  2 10:22:00 2003
@@ -173,9 +173,13 @@ extern unsigned long cache_decay_ticks;
 
 #define	MAX_SCHEDULE_TIMEOUT	LONG_MAX
 extern signed long FASTCALL(schedule_timeout(signed long timeout));
-asmlinkage void do_schedule(void);
-asmlinkage void kern_schedule(void);
-asmlinkage void kern_do_schedule(struct pt_regs);
+#ifdef CONFIG_KGDB_THREAD
+ asmlinkage void do_schedule(void);
+ asmlinkage void kern_schedule(void);
+ asmlinkage void kern_do_schedule(struct pt_regs);
+#else
+ asmlinkage void schedule(void);
+#endif
 
 struct namespace;
 
@@ -724,7 +728,7 @@ extern void unhash_process(struct task_s
 #ifdef CONFIG_KGDB_THREAD
 #define schedule() kern_schedule()
 #else
-#define schedule() do_schedule()
+#define user_schedule() schedule()
 #endif
 
 /* Protects ->fs, ->files, ->mm, and synchronises with wait4().
diff -urpN -X /home/fletch/.diff.exclude 420-sched_interactive/kernel/ksyms.c 430-kgdb_cleanup/kernel/ksyms.c
--- 420-sched_interactive/kernel/ksyms.c	Tue Sep  2 10:15:49 2003
+++ 430-kgdb_cleanup/kernel/ksyms.c	Tue Sep  2 10:22:00 2003
@@ -463,9 +463,11 @@ EXPORT_SYMBOL(sleep_on);
 EXPORT_SYMBOL(sleep_on_timeout);
 EXPORT_SYMBOL(interruptible_sleep_on);
 EXPORT_SYMBOL(interruptible_sleep_on_timeout);
-EXPORT_SYMBOL(do_schedule);
 #ifdef CONFIG_KGDB_THREAD
 EXPORT_SYMBOL(kern_schedule);
+EXPORT_SYMBOL(do_schedule);
+#else
+EXPORT_SYMBOL(schedule);
 #endif
 #ifdef CONFIG_PREEMPT
 EXPORT_SYMBOL(preempt_schedule);
diff -urpN -X /home/fletch/.diff.exclude 420-sched_interactive/kernel/sched.c 430-kgdb_cleanup/kernel/sched.c
--- 420-sched_interactive/kernel/sched.c	Tue Sep  2 10:21:57 2003
+++ 430-kgdb_cleanup/kernel/sched.c	Tue Sep  2 10:22:00 2003
@@ -1318,7 +1318,11 @@ void scheduling_functions_start_here(voi
 /*
  * schedule() is the main scheduler function.
  */
+#ifdef CONFIG_KGDB_THREAD
 asmlinkage void do_schedule(void)
+#else
+asmlinkage void schedule(void)
+#endif
 {
 	task_t *prev, *next;
 	runqueue_t *rq;
@@ -1546,15 +1550,13 @@ void complete_all(struct completion *x)
 	spin_unlock_irqrestore(&x->wait.lock, flags);
 }
 
+#ifdef CONFIG_KGDB_THREAD
 asmlinkage void user_schedule(void)
 {
-#ifdef CONFIG_KGDB_THREAD
 	current->thread.kgdbregs = NULL;
-#endif
 	do_schedule();
 }
 
-#ifdef CONFIG_KGDB_THREAD
 asmlinkage void kern_do_schedule(struct pt_regs regs)
 {
 	current->thread.kgdbregs = &regs;