diff options
author | jhb <jhb@FreeBSD.org> | 2002-07-27 16:54:23 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2002-07-27 16:54:23 +0000 |
commit | 2f0789c8efca1c11cc0cea49e7f39f59b738bc5a (patch) | |
tree | 3893cf0dd39e6f9d6b1b699e7a31ef005336ef4a /sys | |
parent | bd850b6750dc5f4a88ca306b90f16ac63e5e602c (diff) | |
download | FreeBSD-src-2f0789c8efca1c11cc0cea49e7f39f59b738bc5a.zip FreeBSD-src-2f0789c8efca1c11cc0cea49e7f39f59b738bc5a.tar.gz |
Disable optimization of spinlocks on UP kernels w/o debugging for now
since it breaks mtx_owned() on spin mutexes when used outside of
mtx_assert(). Unfortunately we currently use it in the i386 MD code
and in the sio(4) driver.
Reported by: bde
Diffstat (limited to 'sys')
-rw-r--r-- | sys/kern/kern_mutex.c | 4 | ||||
-rw-r--r-- | sys/kern/subr_turnstile.c | 4 | ||||
-rw-r--r-- | sys/sys/mutex.h | 2 |
3 files changed, 5 insertions, 5 deletions
diff --git a/sys/kern/kern_mutex.c b/sys/kern/kern_mutex.c index bc78e7f..bd94bdc 100644 --- a/sys/kern/kern_mutex.c +++ b/sys/kern/kern_mutex.c @@ -403,7 +403,7 @@ _mtx_lock_spin_flags(struct mtx *m, int opts, const char *file, int line) { MPASS(curthread != NULL); -#if defined(SMP) || LOCK_DEBUG > 0 +#if defined(SMP) || LOCK_DEBUG > 0 || 1 _get_spin_lock(m, curthread, opts, file, line); #else critical_enter(); @@ -422,7 +422,7 @@ _mtx_unlock_spin_flags(struct mtx *m, int opts, const char *file, int line) WITNESS_UNLOCK(&m->mtx_object, opts | LOP_EXCLUSIVE, file, line); LOCK_LOG_LOCK("UNLOCK", &m->mtx_object, opts, m->mtx_recurse, file, line); -#if defined(SMP) || LOCK_DEBUG > 0 +#if defined(SMP) || LOCK_DEBUG > 0 || 1 _rel_spin_lock(m); #else critical_exit(); diff --git a/sys/kern/subr_turnstile.c b/sys/kern/subr_turnstile.c index bc78e7f..bd94bdc 100644 --- a/sys/kern/subr_turnstile.c +++ b/sys/kern/subr_turnstile.c @@ -403,7 +403,7 @@ _mtx_lock_spin_flags(struct mtx *m, int opts, const char *file, int line) { MPASS(curthread != NULL); -#if defined(SMP) || LOCK_DEBUG > 0 +#if defined(SMP) || LOCK_DEBUG > 0 || 1 _get_spin_lock(m, curthread, opts, file, line); #else critical_enter(); @@ -422,7 +422,7 @@ _mtx_unlock_spin_flags(struct mtx *m, int opts, const char *file, int line) WITNESS_UNLOCK(&m->mtx_object, opts | LOP_EXCLUSIVE, file, line); LOCK_LOG_LOCK("UNLOCK", &m->mtx_object, opts, m->mtx_recurse, file, line); -#if defined(SMP) || LOCK_DEBUG > 0 +#if defined(SMP) || LOCK_DEBUG > 0 || 1 _rel_spin_lock(m); #else critical_exit(); diff --git a/sys/sys/mutex.h b/sys/sys/mutex.h index 004b992..d5649d3 100644 --- a/sys/sys/mutex.h +++ b/sys/sys/mutex.h @@ -263,7 +263,7 @@ extern int mtx_pool_valid; _get_sleep_lock((m), curthread, (opts), LOCK_FILE, LOCK_LINE) #define mtx_unlock_flags(m, opts) \ _rel_sleep_lock((m), curthread, (opts), LOCK_FILE, LOCK_LINE) -#ifdef SMP +#ifndef SMPnotyet #define mtx_lock_spin_flags(m, opts) \ _get_spin_lock((m), curthread, (opts), LOCK_FILE, LOCK_LINE) #define mtx_unlock_spin_flags(m, opts) \ |