diff -ruNp 102-kdb-fixes-old/arch/i386/kdb/kdbasupport.c 102-kdb-fixes-new/arch/i386/kdb/kdbasupport.c
--- 102-kdb-fixes-old/arch/i386/kdb/kdbasupport.c	2004-12-14 07:39:54.946323048 +1100
+++ 102-kdb-fixes-new/arch/i386/kdb/kdbasupport.c	2004-12-14 07:16:58.104634800 +1100
@@ -13,6 +13,7 @@
 #include <linux/stddef.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
+#include <linux/module.h>
 #include <linux/ptrace.h>
 #include <linux/mm.h>
 #include <linux/sched.h>
@@ -1379,3 +1380,5 @@ kdba_adjust_ip(kdb_reason_t reason, int 
 {
 	return;
 }
+
+EXPORT_SYMBOL(kdba_dumpregs);
diff -ruNp 102-kdb-fixes-old/drivers/serial/8250.c 102-kdb-fixes-new/drivers/serial/8250.c
--- 102-kdb-fixes-old/drivers/serial/8250.c	2004-12-14 07:39:54.870334600 +1100
+++ 102-kdb-fixes-new/drivers/serial/8250.c	2004-12-14 07:40:01.249364840 +1100
@@ -2106,6 +2106,16 @@ static int serial8250_console_setup(stru
 	int parity = 'n';
 	int flow = 'n';
 
+	/*
+	 * Check whether an invalid uart number has been specified, and
+	 * if so, search for the first available port that does have
+	 * console support.
+	 */
+	if (co->index >= UART_NR)
+		co->index = 0;
+	port = &serial8250_ports[co->index].port;
+	if (!port->iobase && !port->membase)
+		return -ENODEV;
 #ifdef	CONFIG_KDB
 	/*
 	 * Remember the line number of the first serial
@@ -2129,16 +2139,6 @@ static int serial8250_console_setup(stru
 		}
 	}
 #endif	/* CONFIG_KDB */
-	/*
-	 * Check whether an invalid uart number has been specified, and
-	 * if so, search for the first available port that does have
-	 * console support.
-	 */
-	if (co->index >= UART_NR)
-		co->index = 0;
-	port = &serial8250_ports[co->index].port;
-	if (!port->iobase && !port->membase)
-		return -ENODEV;
 
 	if (options)
 		uart_parse_options(options, &baud, &parity, &bits, &flow);
diff -ruNp 102-kdb-fixes-old/kdb/kdbmain.c 102-kdb-fixes-new/kdb/kdbmain.c
--- 102-kdb-fixes-old/kdb/kdbmain.c	2004-12-14 07:39:54.897330496 +1100
+++ 102-kdb-fixes-new/kdb/kdbmain.c	2004-12-14 07:16:58.107634344 +1100
@@ -3890,3 +3890,4 @@ EXPORT_SYMBOL(kdb_printf);
 EXPORT_SYMBOL(kdb_symbol_print);
 EXPORT_SYMBOL(kdb_notifier_list);
 EXPORT_SYMBOL(kdb_current_task);
+EXPORT_SYMBOL(kdb_serial_str);
diff -ruNp 102-kdb-fixes-old/kdb/kdbsupport.c 102-kdb-fixes-new/kdb/kdbsupport.c
--- 102-kdb-fixes-old/kdb/kdbsupport.c	2004-12-14 07:39:54.899330192 +1100
+++ 102-kdb-fixes-new/kdb/kdbsupport.c	2004-12-14 07:16:58.108634192 +1100
@@ -962,8 +962,8 @@ kdb_task_state_string(const char *s)
 		case 'S': res |= TASK_INTERRUPTIBLE; break;
 		case 'T': res |= TASK_STOPPED; break;
 		case 'C': res |= TASK_TRACED; break;
-		case 'Z': res |= TASK_ZOMBIE; break;
-		case 'E': res |= TASK_DEAD; break;
+		case 'Z': res |= EXIT_ZOMBIE; break;
+		case 'E': res |= EXIT_DEAD; break;
 		case 'U': res |= UNRUNNABLE; break;
 		case 'I': res |= IDLE; break;
 		case 'M': res |= DAEMON; break;
@@ -1001,8 +1001,8 @@ kdb_task_state_char (const struct task_s
 		     (p->state & TASK_UNINTERRUPTIBLE) ? 'D' :
 		     (p->state & TASK_STOPPED) ? 'T' :
 		     (p->state & TASK_TRACED) ? 'C' :
-		     (p->state & TASK_ZOMBIE) ? 'Z' :
-		     (p->state & TASK_DEAD) ? 'E' :
+		     (p->exit_state & EXIT_ZOMBIE) ? 'Z' :
+		     (p->exit_state & EXIT_DEAD) ? 'E' :
 		     (p->state & TASK_INTERRUPTIBLE) ? 'S' : '?';
 	if (p->pid == 0) {
 		/* Idle task.  Is it really idle, apart from the kdb interrupt? */
