Use only one "ipi" counter just like other archs do.

ok?

Index: dev/openpic.c
===================================================================
RCS file: /cvs/src/sys/arch/macppc/dev/openpic.c,v
retrieving revision 1.81
diff -u -p -r1.81 openpic.c
--- dev/openpic.c       24 Jun 2015 11:58:06 -0000      1.81
+++ dev/openpic.c       24 Jun 2015 13:47:34 -0000
@@ -130,11 +130,9 @@ void       openpic_ipi_ddb(void);
 #define IPI_VECTOR_NOP 64
 #define IPI_VECTOR_DDB 65
 
-static struct evcount ipi_ddb[PPC_MAXPROCS];
-static struct evcount ipi_nop[PPC_MAXPROCS];
+static struct evcount ipi_count;
 
-static int ipi_nopirq = IPI_VECTOR_NOP;
-static int ipi_ddbirq = IPI_VECTOR_DDB;
+static int ipi_irq = IPI_VECTOR_NOP;
 
 intr_send_ipi_t openpic_send_ipi;
 #endif /* MULTIPROCESSOR */
@@ -288,11 +286,7 @@ openpic_attach(struct device *parent, st
        x |= 15 << OPENPIC_PRIORITY_SHIFT;
        openpic_write(OPENPIC_IPI_VECTOR(1), x);
 
-       /* XXX - ncpus */
-       evcount_attach(&ipi_nop[0], "ipi_nop0", &ipi_nopirq);
-       evcount_attach(&ipi_nop[1], "ipi_nop1", &ipi_nopirq);
-       evcount_attach(&ipi_ddb[0], "ipi_ddb0", &ipi_ddbirq);
-       evcount_attach(&ipi_ddb[1], "ipi_ddb1", &ipi_ddbirq);
+       evcount_attach(&ipi_count, "ipi", &ipi_irq);
 #endif
 
        /* clear all pending interrunts */
@@ -638,16 +632,11 @@ openpic_ext_intr(void)
                        return;
                }
 #ifdef MULTIPROCESSOR
-               if (irq == IPI_VECTOR_NOP) {
-                       ipi_nop[ci->ci_cpuid].ec_count++;
+               if (irq == IPI_VECTOR_NOP || irq == IPI_VECTOR_DDB) {
+                       ipi_count.ec_count++;
                        openpic_eoi(ci->ci_cpuid);
-                       irq = openpic_read_irq(ci->ci_cpuid);
-                       continue;
-               }
-               if (irq == IPI_VECTOR_DDB) {
-                       ipi_ddb[ci->ci_cpuid].ec_count++;
-                       openpic_eoi(ci->ci_cpuid);
-                       openpic_ipi_ddb();
+                       if (irq == IPI_VECTOR_DDB)
+                               openpic_ipi_ddb();
                        irq = openpic_read_irq(ci->ci_cpuid);
                        continue;
                }
@@ -758,7 +747,6 @@ openpic_send_ipi(struct cpu_info *ci, in
 void
 openpic_ipi_ddb(void)
 {
-       DPRINTF("ipi_ddb() called\n");
 #ifdef DDB
        Debugger();
 #endif

Reply via email to