aboutsummaryrefslogtreecommitdiff
path: root/cddl
diff options
context:
space:
mode:
authorRui Paulo <rpaulo@FreeBSD.org>2013-08-10 23:17:09 +0000
committerRui Paulo <rpaulo@FreeBSD.org>2013-08-10 23:17:09 +0000
commitf6ddb56a6039c4ff4c06a60ce9b7bfde046e7c78 (patch)
tree0f954412779caf7c0918a09e0716dc8503559afe /cddl
parent1df885c86334dd4d058c00cf55938d9b60bf2551 (diff)
Notes
Diffstat (limited to 'cddl')
-rw-r--r--cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c b/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c
index 25f9956a6918..9c9b2a6e63c6 100644
--- a/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c
+++ b/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c
@@ -1086,7 +1086,17 @@ dt_vopen(int version, int flags, int *errp,
dtfd = open("/dev/dtrace/dtrace", O_RDWR);
err = errno; /* save errno from opening dtfd */
-
+#if defined(__FreeBSD__)
+ /*
+ * Automatically load the 'dtraceall' module if we couldn't open the
+ * char device.
+ */
+ if (err == ENOENT && modfind("dtraceall") < 0) {
+ kldload("dtraceall"); /* ignore the error */
+ dtfd = open("/dev/dtrace/dtrace", O_RDWR);
+ err = errno;
+ }
+#endif
#if defined(sun)
ftfd = open("/dev/dtrace/provider/fasttrap", O_RDWR);
#else