kdb
[Top] [All Lists]

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

To: kdb@xxxxxxxxxxx
Subject: KDB isn't entered from panic on x86_64 as it should be
From: Steven Dake <sdake@xxxxxxxxxx>
Date: Mon, 27 Feb 2006 12:45:13 -0700
Organization: MontaVista Software, Inc.
Reply-to: sdake@xxxxxxxxxx
Sender: kdb-bounce@xxxxxxxxxxx
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@xxxxxxxxxx>
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.
<Prev in Thread] Current Thread [Next in Thread>