diff options
author | markj <markj@FreeBSD.org> | 2013-12-31 15:41:16 +0000 |
---|---|---|
committer | markj <markj@FreeBSD.org> | 2013-12-31 15:41:16 +0000 |
commit | 31d017a7a550725d8ee0bcdf542095d06346d7ea (patch) | |
tree | 26762bd166ff4f424820688cd74dded17b984eb6 /sys/cddl | |
parent | 0d764663c2221bb1f9d8c4a5b157d2af7e8b1978 (diff) | |
download | FreeBSD-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.c | 4 |
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); |