summaryrefslogtreecommitdiffstats
path: root/sys/kern
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/imgact_elf.c4
-rw-r--r--sys/kern/init_main.c4
-rw-r--r--sys/kern/kern_exit.c8
-rw-r--r--sys/kern/kern_fork.c4
-rw-r--r--sys/kern/kern_ktrace.c8
-rw-r--r--sys/kern/kern_proc.c17
-rw-r--r--sys/kern/kern_resource.c8
-rw-r--r--sys/kern/kern_sig.c4
-rw-r--r--sys/kern/kern_synch.c4
-rw-r--r--sys/kern/vfs_extattr.c4
-rw-r--r--sys/kern/vfs_syscalls.c4
11 files changed, 35 insertions, 34 deletions
diff --git a/sys/kern/imgact_elf.c b/sys/kern/imgact_elf.c
index 90c9716..96db3b3 100644
--- a/sys/kern/imgact_elf.c
+++ b/sys/kern/imgact_elf.c
@@ -154,14 +154,14 @@ elf_brand_inuse(Elf_Brandinfo *entry)
struct proc *p;
int rval = FALSE;
- lockmgr(&allproc_lock, LK_SHARED, NULL, CURPROC);
+ ALLPROC_LOCK(AP_SHARED);
LIST_FOREACH(p, &allproc, p_list) {
if (p->p_sysent == entry->sysvec) {
rval = TRUE;
break;
}
}
- lockmgr(&allproc_lock, LK_RELEASE, NULL, CURPROC);
+ ALLPROC_LOCK(AP_RELEASE);
return (rval);
}
diff --git a/sys/kern/init_main.c b/sys/kern/init_main.c
index 81cde0d..a147eae 100644
--- a/sys/kern/init_main.c
+++ b/sys/kern/init_main.c
@@ -409,12 +409,12 @@ proc0_post(void *dummy __unused)
* Now we can look at the time, having had a chance to verify the
* time from the file system. Pretend that proc0 started now.
*/
- lockmgr(&allproc_lock, LK_SHARED, NULL, CURPROC);
+ ALLPROC_LOCK(AP_SHARED);
LIST_FOREACH(p, &allproc, p_list) {
microtime(&p->p_stats->p_start);
p->p_runtime = 0;
}
- lockmgr(&allproc_lock, LK_RELEASE, NULL, CURPROC);
+ ALLPROC_LOCK(AP_RELEASE);
microuptime(&switchtime);
PCPU_SET(switchticks, ticks);
diff --git a/sys/kern/kern_exit.c b/sys/kern/kern_exit.c
index 861f007..4d7c2b2 100644
--- a/sys/kern/kern_exit.c
+++ b/sys/kern/kern_exit.c
@@ -264,12 +264,12 @@ exit1(p, rv)
* Remove proc from allproc queue and pidhash chain.
* Place onto zombproc. Unlink from parent's child list.
*/
- lockmgr(&allproc_lock, LK_EXCLUSIVE, NULL, CURPROC);
+ ALLPROC_LOCK(AP_EXCLUSIVE);
LIST_REMOVE(p, p_list);
LIST_INSERT_HEAD(&zombproc, p, p_list);
LIST_REMOVE(p, p_hash);
- lockmgr(&allproc_lock, LK_RELEASE, NULL, CURPROC);
+ ALLPROC_LOCK(AP_RELEASE);
/*
* We have to wait until after releasing this lock before
* changing p_stat. If we block on a mutex while waiting to
@@ -517,9 +517,9 @@ loop:
* Unlink it from its process group and free it.
*/
leavepgrp(p);
- lockmgr(&allproc_lock, LK_EXCLUSIVE, NULL, CURPROC);
+ ALLPROC_LOCK(AP_EXCLUSIVE);
LIST_REMOVE(p, p_list); /* off zombproc */
- lockmgr(&allproc_lock, LK_RELEASE, NULL, CURPROC);
+ ALLPROC_LOCK(AP_RELEASE);
LIST_REMOVE(p, p_sibling);
if (--p->p_procsig->ps_refcnt == 0) {
diff --git a/sys/kern/kern_fork.c b/sys/kern/kern_fork.c
index c71e94b..60171a5 100644
--- a/sys/kern/kern_fork.c
+++ b/sys/kern/kern_fork.c
@@ -285,7 +285,7 @@ fork1(p1, flags, procp)
* If RFHIGHPID is set (used during system boot), do not allocate
* low-numbered pids.
*/
- lockmgr(&allproc_lock, LK_EXCLUSIVE, NULL, CURPROC);
+ ALLPROC_LOCK(AP_EXCLUSIVE);
trypid = nextpid + 1;
if (flags & RFHIGHPID) {
if (trypid < 10) {
@@ -355,7 +355,7 @@ again:
p2->p_pid = trypid;
LIST_INSERT_HEAD(&allproc, p2, p_list);
LIST_INSERT_HEAD(PIDHASH(p2->p_pid), p2, p_hash);
- lockmgr(&allproc_lock, LK_RELEASE, NULL, CURPROC);
+ ALLPROC_LOCK(AP_RELEASE);
/*
* Make a proc table entry for the new process.
diff --git a/sys/kern/kern_ktrace.c b/sys/kern/kern_ktrace.c
index 2d3b08d..59321fe 100644
--- a/sys/kern/kern_ktrace.c
+++ b/sys/kern/kern_ktrace.c
@@ -278,7 +278,7 @@ ktrace(curp, uap)
* Clear all uses of the tracefile
*/
if (ops == KTROP_CLEARFILE) {
- lockmgr(&allproc_lock, LK_SHARED, NULL, CURPROC);
+ ALLPROC_LOCK(AP_SHARED);
LIST_FOREACH(p, &allproc, p_list) {
if (p->p_tracep == vp) {
if (ktrcanset(curp, p)) {
@@ -290,7 +290,7 @@ ktrace(curp, uap)
error = EPERM;
}
}
- lockmgr(&allproc_lock, LK_RELEASE, NULL, CURPROC);
+ ALLPROC_LOCK(AP_RELEASE);
goto done;
}
/*
@@ -496,7 +496,7 @@ ktrwrite(vp, kth, uio)
*/
log(LOG_NOTICE, "ktrace write failed, errno %d, tracing stopped\n",
error);
- lockmgr(&allproc_lock, LK_SHARED, NULL, CURPROC);
+ ALLPROC_LOCK(AP_SHARED);
LIST_FOREACH(p, &allproc, p_list) {
if (p->p_tracep == vp) {
p->p_tracep = NULL;
@@ -504,7 +504,7 @@ ktrwrite(vp, kth, uio)
vrele(vp);
}
}
- lockmgr(&allproc_lock, LK_RELEASE, NULL, CURPROC);
+ ALLPROC_LOCK(AP_RELEASE);
}
/*
diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c
index 793c068..814a29e 100644
--- a/sys/kern/kern_proc.c
+++ b/sys/kern/kern_proc.c
@@ -122,11 +122,11 @@ pfind(pid)
{
register struct proc *p;
- lockmgr(&allproc_lock, LK_SHARED, NULL, CURPROC);
+ ALLPROC_LOCK(AP_SHARED);
LIST_FOREACH(p, PIDHASH(pid), p_hash)
if (p->p_pid == pid)
break;
- lockmgr(&allproc_lock, LK_RELEASE, NULL, CURPROC);
+ ALLPROC_LOCK(AP_RELEASE);
return (p);
}
@@ -478,10 +478,12 @@ zpfind(pid_t pid)
{
struct proc *p;
+ ALLPROC_LOCK(AP_SHARED);
LIST_FOREACH(p, &zombproc, p_list)
if (p->p_pid == pid)
- return (p);
- return (NULL);
+ break;
+ ALLPROC_LOCK(AP_RELEASE);
+ return (p);
}
@@ -536,7 +538,7 @@ sysctl_kern_proc(SYSCTL_HANDLER_ARGS)
if (error)
return (error);
}
- lockmgr(&allproc_lock, LK_SHARED, NULL, CURPROC);
+ ALLPROC_LOCK(AP_SHARED);
for (doingzomb=0 ; doingzomb < 2 ; doingzomb++) {
if (!doingzomb)
p = LIST_FIRST(&allproc);
@@ -593,13 +595,12 @@ sysctl_kern_proc(SYSCTL_HANDLER_ARGS)
error = sysctl_out_proc(p, req, doingzomb);
if (error) {
- lockmgr(&allproc_lock, LK_RELEASE, NULL,
- CURPROC);
+ ALLPROC_LOCK(AP_RELEASE);
return (error);
}
}
}
- lockmgr(&allproc_lock, LK_RELEASE, NULL, CURPROC);
+ ALLPROC_LOCK(AP_RELEASE);
return (0);
}
diff --git a/sys/kern/kern_resource.c b/sys/kern/kern_resource.c
index a10c2c9..b852cf6 100644
--- a/sys/kern/kern_resource.c
+++ b/sys/kern/kern_resource.c
@@ -121,13 +121,13 @@ getpriority(curp, uap)
case PRIO_USER:
if (uap->who == 0)
uap->who = curp->p_ucred->cr_uid;
- lockmgr(&allproc_lock, LK_SHARED, NULL, CURPROC);
+ ALLPROC_LOCK(AP_SHARED);
LIST_FOREACH(p, &allproc, p_list)
if (!p_can(curp, p, P_CAN_SEE, NULL) &&
p->p_ucred->cr_uid == uap->who &&
p->p_nice < low)
low = p->p_nice;
- lockmgr(&allproc_lock, LK_RELEASE, NULL, CURPROC);
+ ALLPROC_LOCK(AP_RELEASE);
break;
default:
@@ -189,14 +189,14 @@ setpriority(curp, uap)
case PRIO_USER:
if (uap->who == 0)
uap->who = curp->p_ucred->cr_uid;
- lockmgr(&allproc_lock, LK_SHARED, NULL, CURPROC);
+ ALLPROC_LOCK(AP_SHARED);
LIST_FOREACH(p, &allproc, p_list)
if (p->p_ucred->cr_uid == uap->who &&
!p_can(curp, p, P_CAN_SEE, NULL)) {
error = donice(curp, p, uap->prio);
found++;
}
- lockmgr(&allproc_lock, LK_RELEASE, NULL, CURPROC);
+ ALLPROC_LOCK(AP_RELEASE);
break;
default:
diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c
index a6d9f75..c49c336 100644
--- a/sys/kern/kern_sig.c
+++ b/sys/kern/kern_sig.c
@@ -864,7 +864,7 @@ killpg1(cp, sig, pgid, all)
/*
* broadcast
*/
- lockmgr(&allproc_lock, LK_SHARED, NULL, CURPROC);
+ ALLPROC_LOCK(AP_SHARED);
LIST_FOREACH(p, &allproc, p_list) {
if (p->p_pid <= 1 || p->p_flag & P_SYSTEM ||
p == cp || !CANSIGNAL(cp, p, sig))
@@ -873,7 +873,7 @@ killpg1(cp, sig, pgid, all)
if (sig)
psignal(p, sig);
}
- lockmgr(&allproc_lock, LK_RELEASE, NULL, CURPROC);
+ ALLPROC_LOCK(AP_RELEASE);
} else {
if (pgid == 0)
/*
diff --git a/sys/kern/kern_synch.c b/sys/kern/kern_synch.c
index 7d98775..90b9fa3 100644
--- a/sys/kern/kern_synch.c
+++ b/sys/kern/kern_synch.c
@@ -287,7 +287,7 @@ schedcpu(arg)
register int realstathz, s;
realstathz = stathz ? stathz : hz;
- lockmgr(&allproc_lock, LK_SHARED, NULL, CURPROC);
+ ALLPROC_LOCK(AP_SHARED);
LIST_FOREACH(p, &allproc, p_list) {
/*
* Increment time in/out of memory and sleep time
@@ -347,7 +347,7 @@ schedcpu(arg)
mtx_exit(&sched_lock, MTX_SPIN);
splx(s);
}
- lockmgr(&allproc_lock, LK_RELEASE, NULL, CURPROC);
+ ALLPROC_LOCK(AP_RELEASE);
vmmeter();
wakeup((caddr_t)&lbolt);
callout_reset(&schedcpu_callout, hz, schedcpu, NULL);
diff --git a/sys/kern/vfs_extattr.c b/sys/kern/vfs_extattr.c
index 5f1a1d4..16e8984 100644
--- a/sys/kern/vfs_extattr.c
+++ b/sys/kern/vfs_extattr.c
@@ -365,7 +365,7 @@ checkdirs(olddp)
return;
if (VFS_ROOT(olddp->v_mountedhere, &newdp))
panic("mount: lost mount");
- lockmgr(&allproc_lock, LK_SHARED, NULL, CURPROC);
+ ALLPROC_LOCK(AP_SHARED);
LIST_FOREACH(p, &allproc, p_list) {
fdp = p->p_fd;
if (fdp->fd_cdir == olddp) {
@@ -379,7 +379,7 @@ checkdirs(olddp)
fdp->fd_rdir = newdp;
}
}
- lockmgr(&allproc_lock, LK_RELEASE, NULL, CURPROC);
+ ALLPROC_LOCK(AP_RELEASE);
if (rootvnode == olddp) {
vrele(rootvnode);
VREF(newdp);
diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c
index 5f1a1d4..16e8984 100644
--- a/sys/kern/vfs_syscalls.c
+++ b/sys/kern/vfs_syscalls.c
@@ -365,7 +365,7 @@ checkdirs(olddp)
return;
if (VFS_ROOT(olddp->v_mountedhere, &newdp))
panic("mount: lost mount");
- lockmgr(&allproc_lock, LK_SHARED, NULL, CURPROC);
+ ALLPROC_LOCK(AP_SHARED);
LIST_FOREACH(p, &allproc, p_list) {
fdp = p->p_fd;
if (fdp->fd_cdir == olddp) {
@@ -379,7 +379,7 @@ checkdirs(olddp)
fdp->fd_rdir = newdp;
}
}
- lockmgr(&allproc_lock, LK_RELEASE, NULL, CURPROC);
+ ALLPROC_LOCK(AP_RELEASE);
if (rootvnode == olddp) {
vrele(rootvnode);
VREF(newdp);
OpenPOWER on IntegriCloud