KDB isn't entered from panic on x86_64 as it should be
Steven Dake <[email protected]>
| Newsgroups | gmane.linux.kernel.debugging |
|---|---|
| Organization | MontaVista Software, Inc. |
| Message-ID | <[email protected]> |
Jack something that should probably go in your port... The I/O apic code remaps the interrupt gate for entering KDB after trap_init. This patch fixes the problem. Regards -steve MR: 17231 Type: Defect Fix Disposition: submitted to kdb maintainers Signed-off-by: Steven Dake <[email protected]> Description: The io apic code would register an interrupt gate (IRQ handler) after KDB had set its interrupt handler. This registration wipes out the KDB registration. This results in KDB_ENTER no longer working which is called by the panic notifier. The solution is to ensure the KDBENTER_VECTOR is not assigned during IO APIC IRQ assignment. Index: linux-2.6.10/arch/x86_64/kernel/io_apic.c =================================================================== --- linux-2.6.10.orig/arch/x86_64/kernel/io_apic.c +++ linux-2.6.10/arch/x86_64/kernel/io_apic.c @@ -31,6 +31,7 @@ #include <linux/mc146818rtc.h> #include <linux/acpi.h> #include <linux/sysdev.h> +#include <linux/kdb.h> #include <asm/io.h> #include <asm/smp.h> @@ -667,6 +668,11 @@ next: if (current_vector == IA32_SYSCALL_VECTOR) goto next; +#ifdef CONFIG_KDB + if (current_vector == KDBENTER_VECTOR) + goto next; +#endif + if (current_vector >= FIRST_SYSTEM_VECTOR) { offset++; if (!(offset%8)) --------------------------- Use http://oss.sgi.com/ecartis to modify your settings or to unsubscribe.