aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndi Kleen <ak@suse.de>2006-01-11 16:45:54 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-01-11 22:05:00 -0500
commit915f34e20c20ee383832bce0a4bc962d0c86be8d (patch)
tree2e1914cc129361d15e0ad8d888913a0623aef80b
parente080e9d66fd276ed34bc2834eedc134189b87fc9 (diff)
[PATCH] x86_64: Remove useless KDB vector
It was set as an NMI, but the NMI bit always forces an interrupt to end up at vector 2. So it was never used. Remove. Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--arch/x86_64/kernel/entry.S3
-rw-r--r--arch/x86_64/kernel/i8259.c3
-rw-r--r--arch/x86_64/kernel/smp.c5
-rw-r--r--arch/x86_64/kernel/traps.c7
-rw-r--r--include/asm-x86_64/hw_irq.h3
-rw-r--r--include/asm-x86_64/ipi.h4
6 files changed, 3 insertions, 22 deletions
diff --git a/arch/x86_64/kernel/entry.S b/arch/x86_64/kernel/entry.S
index 300555bc56b3..632fc0f59fcc 100644
--- a/arch/x86_64/kernel/entry.S
+++ b/arch/x86_64/kernel/entry.S
@@ -1040,9 +1040,6 @@ ENTRY(machine_check)
1040 CFI_ENDPROC 1040 CFI_ENDPROC
1041#endif 1041#endif
1042 1042
1043ENTRY(call_debug)
1044 zeroentry do_call_debug
1045
1046ENTRY(call_softirq) 1043ENTRY(call_softirq)
1047 CFI_STARTPROC 1044 CFI_STARTPROC
1048 movq %gs:pda_irqstackptr,%rax 1045 movq %gs:pda_irqstackptr,%rax
diff --git a/arch/x86_64/kernel/i8259.c b/arch/x86_64/kernel/i8259.c
index 6e5101ad3d1a..b61965f0fb34 100644
--- a/arch/x86_64/kernel/i8259.c
+++ b/arch/x86_64/kernel/i8259.c
@@ -549,10 +549,9 @@ void __init init_IRQ(void)
549 int vector = FIRST_EXTERNAL_VECTOR + i; 549 int vector = FIRST_EXTERNAL_VECTOR + i;
550 if (i >= NR_IRQS) 550 if (i >= NR_IRQS)
551 break; 551 break;
552 if (vector != IA32_SYSCALL_VECTOR && vector != KDB_VECTOR) { 552 if (vector != IA32_SYSCALL_VECTOR)
553 set_intr_gate(vector, interrupt[i]); 553 set_intr_gate(vector, interrupt[i]);
554 } 554 }
555 }
556 555
557#ifdef CONFIG_SMP 556#ifdef CONFIG_SMP
558 /* 557 /*
diff --git a/arch/x86_64/kernel/smp.c b/arch/x86_64/kernel/smp.c
index 6a666d248c12..19ef012b1f17 100644
--- a/arch/x86_64/kernel/smp.c
+++ b/arch/x86_64/kernel/smp.c
@@ -281,11 +281,6 @@ void flush_tlb_all(void)
281 on_each_cpu(do_flush_tlb_all, NULL, 1, 1); 281 on_each_cpu(do_flush_tlb_all, NULL, 1, 1);
282} 282}
283 283
284void smp_kdb_stop(void)
285{
286 send_IPI_allbutself(KDB_VECTOR);
287}
288
289/* 284/*
290 * this function sends a 'reschedule' IPI to another CPU. 285 * this function sends a 'reschedule' IPI to another CPU.
291 * it goes straight through and wastes no time serializing 286 * it goes straight through and wastes no time serializing
diff --git a/arch/x86_64/kernel/traps.c b/arch/x86_64/kernel/traps.c
index 0827b141c05e..5dee23ba074e 100644
--- a/arch/x86_64/kernel/traps.c
+++ b/arch/x86_64/kernel/traps.c
@@ -910,11 +910,6 @@ asmlinkage void math_state_restore(void)
910 me->thread_info->status |= TS_USEDFPU; 910 me->thread_info->status |= TS_USEDFPU;
911} 911}
912 912
913void do_call_debug(struct pt_regs *regs)
914{
915 notify_die(DIE_CALL, "debug call", regs, 0, 255, SIGINT);
916}
917
918void __init trap_init(void) 913void __init trap_init(void)
919{ 914{
920 set_intr_gate(0,&divide_error); 915 set_intr_gate(0,&divide_error);
@@ -944,8 +939,6 @@ void __init trap_init(void)
944 set_system_gate(IA32_SYSCALL_VECTOR, ia32_syscall); 939 set_system_gate(IA32_SYSCALL_VECTOR, ia32_syscall);
945#endif 940#endif
946 941
947 set_intr_gate(KDB_VECTOR, call_debug);
948
949 /* 942 /*
950 * Should be a barrier for any external CPU state. 943 * Should be a barrier for any external CPU state.
951 */ 944 */
diff --git a/include/asm-x86_64/hw_irq.h b/include/asm-x86_64/hw_irq.h
index b248930767e7..0df1715dee71 100644
--- a/include/asm-x86_64/hw_irq.h
+++ b/include/asm-x86_64/hw_irq.h
@@ -51,7 +51,8 @@ struct hw_interrupt_type;
51#define ERROR_APIC_VECTOR 0xfe 51#define ERROR_APIC_VECTOR 0xfe
52#define RESCHEDULE_VECTOR 0xfd 52#define RESCHEDULE_VECTOR 0xfd
53#define CALL_FUNCTION_VECTOR 0xfc 53#define CALL_FUNCTION_VECTOR 0xfc
54#define KDB_VECTOR 0xfb /* reserved for KDB */ 54/* fb free - please don't readd KDB here because it's useless
55 (hint - think what a NMI bit does to a vector) */
55#define THERMAL_APIC_VECTOR 0xfa 56#define THERMAL_APIC_VECTOR 0xfa
56#define THRESHOLD_APIC_VECTOR 0xf9 57#define THRESHOLD_APIC_VECTOR 0xf9
57/* f8 free */ 58/* f8 free */
diff --git a/include/asm-x86_64/ipi.h b/include/asm-x86_64/ipi.h
index 022e9d340ad7..2a5c162b7d92 100644
--- a/include/asm-x86_64/ipi.h
+++ b/include/asm-x86_64/ipi.h
@@ -38,10 +38,6 @@ static inline unsigned int __prepare_ICR (unsigned int shortcut, int vector, uns
38 icr |= APIC_DM_FIXED | vector; 38 icr |= APIC_DM_FIXED | vector;
39 break; 39 break;
40 case NMI_VECTOR: 40 case NMI_VECTOR:
41 /*
42 * Setup KDB IPI to be delivered as an NMI
43 */
44 case KDB_VECTOR:
45 icr |= APIC_DM_NMI; 41 icr |= APIC_DM_NMI;
46 break; 42 break;
47 } 43 }