From 3c1887d58b0186b05c52f3c49da0b6cea672e904 Mon Sep 17 00:00:00 2001 From: Nick Alcock Date: Fri, 20 Jul 2012 23:00:07 +0100 Subject: [PATCH] Force dtrace_ctf.ko to be loaded whenever dtrace.ko is. DTrace userspace makes the simplifying assumption that dtrace_ctf.ko (containing the CTF for the kernel, for built-in modules, and for shared types, but no code) is always loaded whenever DTrace is usable. (The CTF itself is in a non-loaded section, but having dtrace_ctf.ko in the list of loaded modules means that we can eliminate an annoying set of dtrace_ctf-related special case.) We do this by introducing a dummy function dtrace_ctf_forceload() into the dtrace_ctf module, which DTrace then calls: depmod will then arrange for dtrace_ctf to be loaded when we need it. Signed-off-by: Nick Alcock --- dtrace/dtrace.h | 2 ++ dtrace/dtrace_dev.c | 1 + 2 files changed, 3 insertions(+) diff --git a/dtrace/dtrace.h b/dtrace/dtrace.h index ff054d294da7..e6cbb332fdcc 100644 --- a/dtrace/dtrace.h +++ b/dtrace/dtrace.h @@ -2135,6 +2135,8 @@ extern int dtrace_badattr(const dtrace_attribute_t *); extern int dtrace_badname(const char *); extern void dtrace_cred2priv(const cred_t *, uint32_t *, uid_t *); +extern void dtrace_ctf_forceload(void); + #define DT_PROVIDER_POPS(name) \ static unsigned int name##_refc = 0; \ \ diff --git a/dtrace/dtrace_dev.c b/dtrace/dtrace_dev.c index 3f68182db370..35abbc81556a 100644 --- a/dtrace/dtrace_dev.c +++ b/dtrace/dtrace_dev.c @@ -1214,6 +1214,7 @@ int dtrace_dev_init(void) } dtrace_os_init(); + dtrace_ctf_forceload(); dtrace_modload = dtrace_module_loaded; dtrace_modunload = dtrace_module_unloaded; -- 2.50.1