diff options
| author | Rui Paulo <rpaulo@FreeBSD.org> | 2013-08-10 23:17:09 +0000 |
|---|---|---|
| committer | Rui Paulo <rpaulo@FreeBSD.org> | 2013-08-10 23:17:09 +0000 |
| commit | f6ddb56a6039c4ff4c06a60ce9b7bfde046e7c78 (patch) | |
| tree | 0f954412779caf7c0918a09e0716dc8503559afe | |
| parent | 1df885c86334dd4d058c00cf55938d9b60bf2551 (diff) | |
Notes
| -rw-r--r-- | cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c | 12 |
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 |
