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