--- 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 */