aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAttilio Rao <attilio@FreeBSD.org>2011-12-12 23:29:32 +0000
committerAttilio Rao <attilio@FreeBSD.org>2011-12-12 23:29:32 +0000
commit77befd1d230729bfb6dcefb7a5f094fd340d1e0e (patch)
treeaccadb3a02714fbc40f4b6198a13cfd8cc697088
parentcc1ff620b936c235e0acca17d4d917c3c98583a5 (diff)
downloadsrc-77befd1d230729bfb6dcefb7a5f094fd340d1e0e.tar.gz
src-77befd1d230729bfb6dcefb7a5f094fd340d1e0e.zip
Revert the approach for skipping lockstat_probe_func call when doing
lock_success/lock_failure, introduced in r228424, by directly skipping in dtrace_probe. This mainly helps in avoiding namespace pollution and thus lockstat.h dependency by systm.h. As an added bonus, this also helps in MFC case. Reviewed by: avg MFC after: 3 months (or never) X-MFC: r228424
Notes
Notes: svn path=/head/; revision=228448
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c3
-rw-r--r--sys/security/mac/mac_priv.c1
-rw-r--r--sys/sys/lockstat.h19
3 files changed, 9 insertions, 14 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c b/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
index ae243fd62dd3..ebba9837466f 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
@@ -5877,6 +5877,9 @@ dtrace_probe(dtrace_id_t id, uintptr_t arg0, uintptr_t arg1,
volatile uint16_t *flags;
hrtime_t now;
+ if (panicstr != NULL)
+ return;
+
#if defined(sun)
/*
* Kick out immediately if this CPU is still being born (in which case
diff --git a/sys/security/mac/mac_priv.c b/sys/security/mac/mac_priv.c
index f184a6838b0c..537c00288298 100644
--- a/sys/security/mac/mac_priv.c
+++ b/sys/security/mac/mac_priv.c
@@ -42,7 +42,6 @@ __FBSDID("$FreeBSD$");
#include "opt_mac.h"
#include <sys/param.h>
-#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/priv.h>
#include <sys/sdt.h>
diff --git a/sys/sys/lockstat.h b/sys/sys/lockstat.h
index bdfb475cfc0e..ed9cffa92b62 100644
--- a/sys/sys/lockstat.h
+++ b/sys/sys/lockstat.h
@@ -185,24 +185,17 @@ extern uint64_t lockstat_nsecs(void);
#define LOCKSTAT_PROFILE_OBTAIN_LOCK_SUCCESS(probe, lp, c, wt, f, l) do { \
uint32_t id; \
\
- if (!SCHEDULER_STOPPED()) { \
- lock_profile_obtain_lock_success(&(lp)->lock_object, c, wt, \
- f, l); \
- if ((id = lockstat_probemap[(probe)])) \
- (*lockstat_probe_func)(id, (uintptr_t)(lp), 0, 0, \
- 0, 0); \
- } \
+ lock_profile_obtain_lock_success(&(lp)->lock_object, c, wt, f, l); \
+ if ((id = lockstat_probemap[(probe)])) \
+ (*lockstat_probe_func)(id, (uintptr_t)(lp), 0, 0, 0, 0); \
} while (0)
#define LOCKSTAT_PROFILE_RELEASE_LOCK(probe, lp) do { \
uint32_t id; \
\
- if (!SCHEDULER_STOPPED()) { \
- lock_profile_release_lock(&(lp)->lock_object); \
- if ((id = lockstat_probemap[(probe)])) \
- (*lockstat_probe_func)(id, (uintptr_t)(lp), 0, 0, \
- 0, 0); \
- } \
+ lock_profile_release_lock(&(lp)->lock_object); \
+ if ((id = lockstat_probemap[(probe)])) \
+ (*lockstat_probe_func)(id, (uintptr_t)(lp), 0, 0, 0, 0); \
} while (0)
#else /* !KDTRACE_HOOKS */