KDB isn't entered from panic on x86_64 as it should be

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


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 <sdake at mvista.com>
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.


[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]    [Yosemite Photos]    [Free Online Dating]     [Linux Kernel]     [Linux SCSI]     [XFree86]

Add to Google Powered by Linux