Skip to contentSkip to conversation

x86_64: Rename KDB_VECTOR to DEBUGGER_VECTOR

PATCH In review Tom Rini 3 participants 5 messages Aug 8, 2005

lore
Share & tools
lore

Tom Rini

author
#0 lore raw

PATCH 1/1 x86_64: Rename KDB_VECTOR to DEBUGGER_VECTOR

CC: Andi Kleen <[email protected]>, Keith Owens <[email protected]>
The existing hook from KDB in the IPI code is really just a hook for the NMI vector. We rename the vector thusly and then it's up to the debugger to handle things from default_do_nmi().

---

 linux-2.6.13-rc6-trini/arch/x86_64/kernel/i8259.c  |    2 +-
 linux-2.6.13-rc6-trini/arch/x86_64/kernel/smp.c    |    2 +-
 linux-2.6.13-rc6-trini/arch/x86_64/kernel/traps.c  |    2 +-
 linux-2.6.13-rc6-trini/include/asm-x86_64/hw_irq.h |    2 +-
 linux-2.6.13-rc6-trini/include/asm-x86_64/ipi.h    |    2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)
arch/x86_64/kernel/i8259.c renamed from arch/x86_64/kernel/i8259.c~x86_64-rename_kdb_vector +1 -1
diff -puN arch/x86_64/kernel/i8259.c~x86_64-rename_kdb_vector arch/x86_64/kernel/i8259.c
@@ -544,7 +544,7 @@ void __init init_IRQ(void)
 		int vector = FIRST_EXTERNAL_VECTOR + i;
 		if (i >= NR_IRQS)
 			break;
-		if (vector != IA32_SYSCALL_VECTOR && vector != KDB_VECTOR) { 
+		if (vector != IA32_SYSCALL_VECTOR && vector != NMI_VECTOR) {
 			set_intr_gate(vector, interrupt[i]);
 	}
 	}
arch/x86_64/kernel/smp.c renamed from arch/x86_64/kernel/smp.c~x86_64-rename_kdb_vector +1 -1
diff -puN arch/x86_64/kernel/smp.c~x86_64-rename_kdb_vector arch/x86_64/kernel/smp.c
@@ -252,7 +252,7 @@ void flush_tlb_all(void)
 
 void smp_kdb_stop(void)
 {
-	send_IPI_allbutself(KDB_VECTOR);
+	send_IPI_allbutself(NMI_VECTOR);
 }
 
 /*
arch/x86_64/kernel/traps.c renamed from arch/x86_64/kernel/traps.c~x86_64-rename_kdb_vector +1 -1
diff -puN arch/x86_64/kernel/traps.c~x86_64-rename_kdb_vector arch/x86_64/kernel/traps.c
@@ -931,7 +931,7 @@ void __init trap_init(void)
 	set_system_gate(IA32_SYSCALL_VECTOR, ia32_syscall);
 #endif
        
-	set_intr_gate(KDB_VECTOR, call_debug);
+	set_intr_gate(NMI_VECTOR, call_debug);
        
 	/*
 	 * Should be a barrier for any external CPU state.
include/asm-x86_64/hw_irq.h renamed from include/asm-x86_64/hw_irq.h~x86_64-rename_kdb_vector +1 -1
diff -puN include/asm-x86_64/hw_irq.h~x86_64-rename_kdb_vector include/asm-x86_64/hw_irq.h
@@ -54,7 +54,7 @@ struct hw_interrupt_type;
 #define RESCHEDULE_VECTOR	0xfc
 #define TASK_MIGRATION_VECTOR	0xfb
 #define CALL_FUNCTION_VECTOR	0xfa
-#define KDB_VECTOR	0xf9
+#define NMI_VECTOR	0xf9
 
 #define THERMAL_APIC_VECTOR	0xf0
 
include/asm-x86_64/ipi.h renamed from include/asm-x86_64/ipi.h~x86_64-rename_kdb_vector +1 -1
diff -puN include/asm-x86_64/ipi.h~x86_64-rename_kdb_vector include/asm-x86_64/ipi.h
@@ -32,7 +32,7 @@
 static inline unsigned int __prepare_ICR (unsigned int shortcut, int vector, unsigned int dest)
 {
 	unsigned int icr =  APIC_DM_FIXED | shortcut | vector | dest;
-	if (vector == KDB_VECTOR)
+	if (vector == NMI_VECTOR)
 		icr = (icr & (~APIC_VECTOR_MASK)) | APIC_DM_NMI;
 	return icr;
 }

_

#1 lore raw

include/asm-x86_64/ipi.h line 36

Quoted 5 lines · Tom Rini

{

include/asm-x86_64/ipi.h renamed from include/asm-x86_64/ipi.h~x86_64-rename_kdb_vector +1 -1
 	unsigned int icr =  APIC_DM_FIXED | shortcut | vector | dest;
-	if (vector == KDB_VECTOR)
+	if (vector == NMI_VECTOR)
 		icr = (icr & (~APIC_VECTOR_MASK)) | APIC_DM_NMI;

That if () should be removed since it's useless.
Can you do that please?

-Andi

#2 lore raw
Quoted 9 lines · Andi Kleen

include/asm-x86_64/ipi.h line 36

Quoted 5 lines · Tom Rini

{

include/asm-x86_64/ipi.h renamed from include/asm-x86_64/ipi.h~x86_64-rename_kdb_vector +1 -1
 	unsigned int icr =  APIC_DM_FIXED | shortcut | vector | dest;
-	if (vector == KDB_VECTOR)
+	if (vector == NMI_VECTOR)
 		icr = (icr & (~APIC_VECTOR_MASK)) | APIC_DM_NMI;

That if () should be removed since it's useless.
Can you do that please?

Why is 'if ()' useless? Remove the if test and all ipis get sent as NMI, we definitely do not want that.

#3 lore raw
Quoted 12 lines · Keith Owens
Quoted 9 lines · Andi Kleen

include/asm-x86_64/ipi.h line 36

Quoted 5 lines · Tom Rini

{

include/asm-x86_64/ipi.h renamed from include/asm-x86_64/ipi.h~x86_64-rename_kdb_vector +1 -1
 	unsigned int icr =  APIC_DM_FIXED | shortcut | vector | dest;
-	if (vector == KDB_VECTOR)
+	if (vector == NMI_VECTOR)
 		icr = (icr & (~APIC_VECTOR_MASK)) | APIC_DM_NMI;

That if () should be removed since it's useless.
Can you do that please?

Quoted 2 lines

Why is 'if ()' useless? Remove the if test and all ipis get sent as NMI, we definitely do not want that.

The if () with its following line. The same result can be gotten by passing suitable arguments.

-Andi

#4 lore raw
Quoted 13 lines · Andi Kleen
Quoted 12 lines · Keith Owens
Quoted 9 lines · Andi Kleen

include/asm-x86_64/ipi.h line 36

Quoted 5 lines · Tom Rini

{

include/asm-x86_64/ipi.h renamed from include/asm-x86_64/ipi.h~x86_64-rename_kdb_vector +1 -1
 	unsigned int icr =  APIC_DM_FIXED | shortcut | vector | dest;
-	if (vector == KDB_VECTOR)
+	if (vector == NMI_VECTOR)
 		icr = (icr & (~APIC_VECTOR_MASK)) | APIC_DM_NMI;

That if () should be removed since it's useless.
Can you do that please?

Quoted 5 lines
Quoted 2 lines

Why is 'if ()' useless? Remove the if test and all ipis get sent as NMI, we definitely do not want that.

The if () with its following line. The same result can be gotten by passing suitable arguments.

Arguments to what? The path for sending the NMI_VECTOR is send_IPI_allbutself -> {cluster,flat,physflat}_send_IPI_allbutself -> {__send_IPI_shortcut, physflat_send_IPI_mask, cluster_send_IPI_mask} -> send_IPI_mask_sequence -> __prepare_ICR.

Pushing the check for NMI_VECTOR any higher than __prepare_ICR needs multiple tests for NMI_VECTOR.