summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2002-07-27 16:54:23 +0000
committerjhb <jhb@FreeBSD.org>2002-07-27 16:54:23 +0000
commit2f0789c8efca1c11cc0cea49e7f39f59b738bc5a (patch)
tree3893cf0dd39e6f9d6b1b699e7a31ef005336ef4a /sys
parentbd850b6750dc5f4a88ca306b90f16ac63e5e602c (diff)
downloadFreeBSD-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.c4
-rw-r--r--sys/kern/subr_turnstile.c4
-rw-r--r--sys/sys/mutex.h2
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) \
OpenPOWER on IntegriCloud