summaryrefslogtreecommitdiffstats
path: root/sys/cddl
diff options
context:
space:
mode:
authormarkj <markj@FreeBSD.org>2013-12-31 15:41:16 +0000
committermarkj <markj@FreeBSD.org>2013-12-31 15:41:16 +0000
commit31d017a7a550725d8ee0bcdf542095d06346d7ea (patch)
tree26762bd166ff4f424820688cd74dded17b984eb6 /sys/cddl
parent0d764663c2221bb1f9d8c4a5b157d2af7e8b1978 (diff)
downloadFreeBSD-src-31d017a7a550725d8ee0bcdf542095d06346d7ea.zip
FreeBSD-src-31d017a7a550725d8ee0bcdf542095d06346d7ea.tar.gz
Allocate the probe ID unrhdr before the DTrace kld_* event handlers are
registered. Otherwise there is a small window during which probe IDs may be allocated before the unrhdr is allocated. MFC after: 2 weeks
Diffstat (limited to 'sys/cddl')
-rw-r--r--sys/cddl/dev/dtrace/dtrace_load.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/cddl/dev/dtrace/dtrace_load.c b/sys/cddl/dev/dtrace/dtrace_load.c
index 5d59a04..e9cf9ae 100644
--- a/sys/cddl/dev/dtrace/dtrace_load.c
+++ b/sys/cddl/dev/dtrace/dtrace_load.c
@@ -58,6 +58,8 @@ dtrace_load(void *dummy)
dtrace_taskq = taskq_create("dtrace_taskq", 1, maxclsyspri, 0, 0, 0);
+ dtrace_arena = new_unrhdr(1, INT_MAX, &dtrace_unr_mtx);
+
/* Register callbacks for linker file load and unload events. */
dtrace_kld_load_tag = EVENTHANDLER_REGISTER(kld_load,
dtrace_kld_load, NULL, EVENTHANDLER_PRI_ANY);
@@ -85,8 +87,6 @@ dtrace_load(void *dummy)
ASSERT(MUTEX_HELD(&cpu_lock));
- dtrace_arena = new_unrhdr(1, INT_MAX, &dtrace_unr_mtx);
-
dtrace_state_cache = kmem_cache_create("dtrace_state_cache",
sizeof (dtrace_dstate_percpu_t) * NCPU, DTRACE_STATE_ALIGN,
NULL, NULL, NULL, NULL, NULL, 0);
OpenPOWER on IntegriCloud