summaryrefslogtreecommitdiffstats
path: root/sys/kern/subr_turnstile.c
diff options
context:
space:
mode:
authorjake <jake@FreeBSD.org>2001-01-10 04:43:51 +0000
committerjake <jake@FreeBSD.org>2001-01-10 04:43:51 +0000
commit4f5d8ed82579a945555b585b43ab2d09eae30c77 (patch)
tree512839f19fc02786cc9904c4406357f3573a8b09 /sys/kern/subr_turnstile.c
parent776ef1f43089579877329277af83423976a699d2 (diff)
downloadFreeBSD-src-4f5d8ed82579a945555b585b43ab2d09eae30c77.zip
FreeBSD-src-4f5d8ed82579a945555b585b43ab2d09eae30c77.tar.gz
Use PCPU_GET, PCPU_PTR and PCPU_SET to access all per-cpu variables
other then curproc.
Diffstat (limited to 'sys/kern/subr_turnstile.c')
-rw-r--r--sys/kern/subr_turnstile.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/kern/subr_turnstile.c b/sys/kern/subr_turnstile.c
index 77fbdc1..a79299c 100644
--- a/sys/kern/subr_turnstile.c
+++ b/sys/kern/subr_turnstile.c
@@ -844,7 +844,7 @@ witness_enter(struct mtx *m, int flags, const char *file, int line)
if (m->mtx_recurse != 0)
return;
mtx_enter(&w_mtx, MTX_SPIN | MTX_QUIET);
- i = witness_spin_check;
+ i = PCPU_GET(witness_spin_check);
if (i != 0 && w->w_level < i) {
mtx_exit(&w_mtx, MTX_SPIN | MTX_QUIET);
panic("mutex_enter(%s:%x, MTX_SPIN) out of order @"
@@ -977,7 +977,8 @@ witness_exit(struct mtx *m, int flags, const char *file, int line)
if (m->mtx_recurse != 0)
return;
mtx_enter(&w_mtx, MTX_SPIN | MTX_QUIET);
- PCPU_SET(witness_spin_check, witness_spin_check & ~w->w_level);
+ PCPU_SET(witness_spin_check,
+ PCPU_GET(witness_spin_check) & ~w->w_level);
mtx_exit(&w_mtx, MTX_SPIN | MTX_QUIET);
return;
}
@@ -1011,7 +1012,8 @@ witness_try_enter(struct mtx *m, int flags, const char *file, int line)
if (m->mtx_recurse != 0)
return;
mtx_enter(&w_mtx, MTX_SPIN | MTX_QUIET);
- PCPU_SET(witness_spin_check, witness_spin_check | w->w_level);
+ PCPU_SET(witness_spin_check,
+ PCPU_GET(witness_spin_check) | w->w_level);
mtx_exit(&w_mtx, MTX_SPIN | MTX_QUIET);
w->w_file = file;
w->w_line = line;
OpenPOWER on IntegriCloud