2.5.41: lkcd (1/8): dump vector

2.5.41: lkcd (1/8): dump vector

Post by Matt D. Robinso » Fri, 11 Oct 2002 22:10:07



This adds the DUMP_VECTOR interrupt.

 arch/i386/kernel/smp.c               |   15 +++++++++++++++
 arch/i386/mach-generic/irq_vectors.h |    1 +
 include/asm-i386/smp.h               |    1 +
 3 files changed, 17 insertions(+)

diff -Naur linux-2.5.41.orig/arch/i386/kernel/smp.c linux-2.5.41.lkcd/arch/i386/kernel/smp.c
--- linux-2.5.41.orig/arch/i386/kernel/smp.c    Mon Oct  7 11:23:24 2002

 #include <linux/mc146818rtc.h>
 #include <linux/cache.h>
 #include <linux/interrupt.h>
+#include <linux/module.h>
+#include <linux/dump.h>

 #include <asm/mtrr.h>

         */
        cfg = __prepare_ICR(shortcut, vector);

+       if (vector == DUMP_VECTOR) {
+               /*
+                * Setup DUMP IPI to be delivered as an NMI
+                */
+               cfg = (cfg&~APIC_VECTOR_MASK)|APIC_DM_NMI;
+       }
+
        /*
         * Send the IPI. The write to APIC_ICR fires this off.

        do_flush_tlb_all_local();
 }

+void dump_send_ipi(void)
+{
+       send_IPI_allbutself(DUMP_VECTOR);
+}
+
 /*
  * this function sends a 'reschedule' IPI to another CPU.

        }
 }

+EXPORT_SYMBOL(dump_send_ipi);
diff -Naur linux-2.5.41.orig/arch/i386/mach-generic/irq_vectors.h linux-2.5.41.lkcd/arch/i386/mach-generic/irq_vectors.h
--- linux-2.5.41.orig/arch/i386/mach-generic/irq_vectors.h      Mon Oct  7 11:23:37 2002

 #define INVALIDATE_TLB_VECTOR  0xfd
 #define RESCHEDULE_VECTOR      0xfc
 #define CALL_FUNCTION_VECTOR   0xfb
+#define DUMP_VECTOR            0xfa

 #define THERMAL_APIC_VECTOR    0xf0
 /*
diff -Naur linux-2.5.41.orig/include/asm-i386/smp.h linux-2.5.41.lkcd/include/asm-i386/smp.h
--- linux-2.5.41.orig/include/asm-i386/smp.h    Mon Oct  7 11:23:22 2002

 extern int cpu_sibling_map[];

 extern void smp_flush_tlb(void);
+extern void dump_send_ipi(void);
 extern void smp_message_irq(int cpl, void *dev_id, struct pt_regs *regs);
 extern void smp_send_reschedule(int cpu);
 extern void smp_send_reschedule_all(void);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in

More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/