From 003745514860fc1dddcc5ff150b17a613ae0b89f Mon Sep 17 00:00:00 2001 From: Mark Johnston Date: Mon, 27 Nov 2017 18:42:23 +0000 Subject: [PATCH] Don't use pcpu_find() to determine if a CPU ID is valid. This addresses assertion failures after r326218. MFC after: 1 week --- sys/cddl/dev/dtrace/dtrace_ioctl.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/sys/cddl/dev/dtrace/dtrace_ioctl.c b/sys/cddl/dev/dtrace/dtrace_ioctl.c index 9d1b686d8db..da36ee73897 100644 --- a/sys/cddl/dev/dtrace/dtrace_ioctl.c +++ b/sys/cddl/dev/dtrace/dtrace_ioctl.c @@ -231,9 +231,7 @@ dtrace_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, "DTRACEIOC_AGGSNAP":"DTRACEIOC_BUFSNAP", curcpu, desc.dtbd_cpu); - if (desc.dtbd_cpu >= NCPU) - return (ENOENT); - if (pcpu_find(desc.dtbd_cpu) == NULL) + if (desc.dtbd_cpu >= MAXCPU || CPU_ABSENT(desc.dtbd_cpu)) return (ENOENT); mutex_enter(&dtrace_lock); @@ -797,11 +795,7 @@ dtrace_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, nerrs = state->dts_errors; dstate = &state->dts_vstate.dtvs_dynvars; - for (i = 0; i < NCPU; i++) { -#ifndef illumos - if (pcpu_find(i) == NULL) - continue; -#endif + CPU_FOREACH(i) { dtrace_dstate_percpu_t *dcpu = &dstate->dtds_percpu[i]; stat->dtst_dyndrops += dcpu->dtdsc_drops;