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
This commit is contained in:
Mark Johnston 2013-12-31 15:41:16 +00:00
parent a333376bba
commit b69b2ff588

View File

@ -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);