Module Name: src Committed By: matt Date: Wed Jun 29 05:55:47 UTC 2011
Modified Files: src/sys/arch/powerpc/booke: e500_intr.c Log Message: Panic when an ipi is sent to unknown cpu. To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 src/sys/arch/powerpc/booke/e500_intr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/powerpc/booke/e500_intr.c diff -u src/sys/arch/powerpc/booke/e500_intr.c:1.13 src/sys/arch/powerpc/booke/e500_intr.c:1.14 --- src/sys/arch/powerpc/booke/e500_intr.c:1.13 Sat Jun 25 00:07:10 2011 +++ src/sys/arch/powerpc/booke/e500_intr.c Wed Jun 29 05:55:47 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: e500_intr.c,v 1.13 2011/06/25 00:07:10 matt Exp $ */ +/* $NetBSD: e500_intr.c,v 1.14 2011/06/29 05:55:47 matt Exp $ */ /*- * Copyright (c) 2010, 2011 The NetBSD Foundation, Inc. * All rights reserved. @@ -1132,7 +1132,7 @@ struct cpu_softc * const cpu = ci->ci_softc; uint32_t dstmask; - if (target >= ncpu) { + if (target >= CPU_MAXNUM) { CPU_INFO_ITERATOR cii; struct cpu_info *dst_ci; @@ -1149,7 +1149,10 @@ } } else { struct cpu_info * const dst_ci = cpu_lookup(target); - KASSERT(target == cpu_index(dst_ci)); + KASSERT(dst_ci != NULL); + KASSERTMSG(target == cpu_index(dst_ci), + ("%s: target (%lu) != cpu_index(cpu%u)", + __func__, target, cpu_index(dst_ci))); dstmask = (1 << target); if (ipimsg) atomic_or_32(&dst_ci->ci_pending_ipis, ipimsg);