summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_glue.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/vm/vm_glue.c')
-rw-r--r--sys/vm/vm_glue.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/vm/vm_glue.c b/sys/vm/vm_glue.c
index 82e22ba..3c9e941 100644
--- a/sys/vm/vm_glue.c
+++ b/sys/vm/vm_glue.c
@@ -360,6 +360,7 @@ loop:
pp = NULL;
ppri = INT_MIN;
+ lockmgr(&allproc_lock, LK_SHARED, NULL, CURPROC);
for (p = allproc.lh_first; p != 0; p = p->p_list.le_next) {
if (p->p_stat == SRUN &&
(p->p_flag & (P_INMEM | P_SWAPPING)) == 0) {
@@ -380,6 +381,7 @@ loop:
}
}
}
+ lockmgr(&allproc_lock, LK_RELEASE, NULL, CURPROC);
/*
* Nothing to do, back to sleep.
@@ -439,6 +441,7 @@ int action;
outp = outp2 = NULL;
outpri = outpri2 = INT_MIN;
+ lockmgr(&allproc_lock, LK_SHARED, NULL, CURPROC);
retry:
for (p = allproc.lh_first; p != 0; p = p->p_list.le_next) {
struct vmspace *vm;
@@ -504,6 +507,7 @@ retry:
}
}
}
+ lockmgr(&allproc_lock, LK_RELEASE, NULL, CURPROC);
/*
* If we swapped something out, and another process needed memory,
* then wakeup the sched process.
OpenPOWER on IntegriCloud