summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_prot.c
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2005-01-23 21:01:00 +0000
committerrwatson <rwatson@FreeBSD.org>2005-01-23 21:01:00 +0000
commit1d8015ceb7d7567b75c83f37f7f00510ee6eeca6 (patch)
tree40c954b7cf2cb0de0445741dbf28d7a16e8e0fa7 /sys/kern/kern_prot.c
parent293a12c083ef4fd97d15da81ffbef7ec687153ba (diff)
downloadFreeBSD-src-1d8015ceb7d7567b75c83f37f7f00510ee6eeca6.zip
FreeBSD-src-1d8015ceb7d7567b75c83f37f7f00510ee6eeca6.tar.gz
When reading pr_securelevel from a prison, perform a lockless read,
as it's an integer read operation and the resulting slight race is acceptable. MFC after: 1 week
Diffstat (limited to 'sys/kern/kern_prot.c')
-rw-r--r--sys/kern/kern_prot.c4
1 files changed, 0 insertions, 4 deletions
diff --git a/sys/kern/kern_prot.c b/sys/kern/kern_prot.c
index 2f988ea..57216db 100644
--- a/sys/kern/kern_prot.c
+++ b/sys/kern/kern_prot.c
@@ -1276,10 +1276,8 @@ securelevel_gt(struct ucred *cr, int level)
active_securelevel = securelevel;
KASSERT(cr != NULL, ("securelevel_gt: null cr"));
if (cr->cr_prison != NULL) {
- mtx_lock(&cr->cr_prison->pr_mtx);
active_securelevel = imax(cr->cr_prison->pr_securelevel,
active_securelevel);
- mtx_unlock(&cr->cr_prison->pr_mtx);
}
return (active_securelevel > level ? EPERM : 0);
}
@@ -1292,10 +1290,8 @@ securelevel_ge(struct ucred *cr, int level)
active_securelevel = securelevel;
KASSERT(cr != NULL, ("securelevel_ge: null cr"));
if (cr->cr_prison != NULL) {
- mtx_lock(&cr->cr_prison->pr_mtx);
active_securelevel = imax(cr->cr_prison->pr_securelevel,
active_securelevel);
- mtx_unlock(&cr->cr_prison->pr_mtx);
}
return (active_securelevel >= level ? EPERM : 0);
}
OpenPOWER on IntegriCloud