diff --git a/sys/sys/_lock.h b/sys/sys/_lock.h index 9841f45d565..cc035df54ba 100644 --- a/sys/sys/_lock.h +++ b/sys/sys/_lock.h @@ -31,22 +31,6 @@ #ifndef _SYS_LOCK_TYPES_H_ #define _SYS_LOCK_TYPES_H_ -#ifdef _KERNEL -/* - * If any of WITNESS, INVARIANTS, or KTR_LOCK KTR tracing has been enabled, - * then turn on LOCK_DEBUG. When this option is on, extra debugging - * facilities such as tracking the file and line number of lock operations - * are enabled. Also, mutex locking operations are not inlined to avoid - * bloat from all the extra debugging code. We also have to turn on all the - * calling conventions for this debugging code in modules so that modules can - * work with both debug and non-debug kernels. - */ -#if defined(KLD_MODULE) || defined(WITNESS) || defined(INVARIANTS) || defined(INVARIANT_SUPPORT) || (defined(KTR) && (KTR_COMPILE & KTR_LOCK)) -#define LOCK_DEBUG -#endif - -#endif /* _KERNEL */ - struct lock_object { struct lock_class *lo_class; const char *lo_name; diff --git a/sys/sys/lock.h b/sys/sys/lock.h index 51fcac3570e..04b49fac021 100644 --- a/sys/sys/lock.h +++ b/sys/sys/lock.h @@ -123,11 +123,26 @@ struct lock_list_entry { u_int ll_count; }; +/* + * If any of WITNESS, INVARIANTS, or KTR_LOCK KTR tracing has been enabled, + * then turn on LOCK_DEBUG. When this option is on, extra debugging + * facilities such as tracking the file and line number of lock operations + * are enabled. Also, mutex locking operations are not inlined to avoid + * bloat from all the extra debugging code. We also have to turn on all the + * calling conventions for this debugging code in modules so that modules can + * work with both debug and non-debug kernels. + */ +#if defined(KLD_MODULE) || defined(WITNESS) || defined(INVARIANTS) || defined(INVARIANT_SUPPORT) || defined(KTR) +#define LOCK_DEBUG 1 +#else +#define LOCK_DEBUG 0 +#endif + /* * In the LOCK_DEBUG case, use the filename and line numbers for debugging * operations. Otherwise, use default values to avoid the unneeded bloat. */ -#ifdef LOCK_DEBUG +#if LOCK_DEBUG > 0 #define LOCK_FILE __FILE__ #define LOCK_LINE __LINE__ #else diff --git a/sys/sys/mutex.h b/sys/sys/mutex.h index 3965d97c377..d4c5c37606f 100644 --- a/sys/sys/mutex.h +++ b/sys/sys/mutex.h @@ -34,11 +34,6 @@ #ifndef LOCORE #include - -#ifdef _KERNEL -#include -#endif /* _KERNEL_ */ - #include #include @@ -242,7 +237,10 @@ void _mtx_assert(struct mtx *m, int what, const char *file, int line); #define mtx_unlock(m) mtx_unlock_flags((m), 0) #define mtx_unlock_spin(m) mtx_unlock_spin_flags((m), 0) -#ifdef LOCK_DEBUG +#ifndef LOCK_DEBUG +#error LOCK_DEBUG not defined, include before +#endif +#if LOCK_DEBUG > 0 #define mtx_lock_flags(m, opts) \ _mtx_lock_flags((m), (opts), LOCK_FILE, LOCK_LINE) #define mtx_unlock_flags(m, opts) \