---
 init/main.c |   13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

Index: linux-2.6.27-SLE11_BRANCH_x2apic_kdb/init/main.c
===================================================================
--- linux-2.6.27-SLE11_BRANCH_x2apic_kdb.orig/init/main.c
+++ linux-2.6.27-SLE11_BRANCH_x2apic_kdb/init/main.c
@@ -200,6 +200,9 @@ extern struct obs_kernel_param __setup_s
 #ifdef	CONFIG_KDB
 static int __init kdb_setup(char *str)
 {
+	if (!str)
+		return -EINVAL;
+
 	if (strcmp(str, "on") == 0) {
 		kdb_on = 1;
 	} else if (strcmp(str, "on-nokey") == 0) {
@@ -214,7 +217,7 @@ static int __init kdb_setup(char *str)
 	return 0;
 }
 
-__setup("kdb=", kdb_setup);
+early_param("kdb", kdb_setup);
 #endif	/* CONFIG_KDB */
 
 static int __init obsolete_checksetup(char *line)
@@ -685,9 +688,11 @@ asmlinkage void __init start_kernel(void
 	anon_vma_init();
 
 #ifdef	CONFIG_KDB
-	kdb_init();
-	if (KDB_FLAG(EARLYKDB)) {
-		KDB_ENTER();
+	if (kdb_on) {
+		kdb_init();
+		if (KDB_FLAG(EARLYKDB)) {
+			KDB_ENTER();
+		}
 	}
 #endif	/* CONFIG_KDB */
 
