summaryrefslogtreecommitdiffstats
path: root/lib/libkvm/kvm_proc2.c
diff options
context:
space:
mode:
authormpi <mpi@openbsd.org>2020-12-07 16:55:28 +0000
committermpi <mpi@openbsd.org>2020-12-07 16:55:28 +0000
commitb21c774f9611a2013048bb9dfc02468e6860dad1 (patch)
tree0edc08a4801a5acf3d04ac257d6e94fc91e554f5 /lib/libkvm/kvm_proc2.c
parentLimit the URL embedded in .cer files to only consist out of isalnum or (diff)
downloadwireguard-openbsd-b21c774f9611a2013048bb9dfc02468e6860dad1.tar.xz
wireguard-openbsd-b21c774f9611a2013048bb9dfc02468e6860dad1.zip
Convert the per-process thread list into a SMR_TAILQ.
Currently all iterations are done under KERNEL_LOCK() and therefor use the *_LOCKED() variant. From and ok claudio@
Diffstat (limited to 'lib/libkvm/kvm_proc2.c')
-rw-r--r--lib/libkvm/kvm_proc2.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/libkvm/kvm_proc2.c b/lib/libkvm/kvm_proc2.c
index 96f7dc91b92..259fdfe8ec9 100644
--- a/lib/libkvm/kvm_proc2.c
+++ b/lib/libkvm/kvm_proc2.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kvm_proc2.c,v 1.31 2019/12/11 12:36:28 sthen Exp $ */
+/* $OpenBSD: kvm_proc2.c,v 1.32 2020/12/07 16:55:28 mpi Exp $ */
/* $NetBSD: kvm_proc.c,v 1.30 1999/03/24 05:50:50 mrg Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -341,8 +341,9 @@ kvm_proclist(kvm_t *kd, int op, int arg, struct process *pr,
kp.p_pctcpu = 0;
kp.p_stat = (process.ps_flags & PS_ZOMBIE) ? SDEAD :
SIDL;
- for (p = TAILQ_FIRST(&process.ps_threads); p != NULL;
- p = TAILQ_NEXT(&proc, p_thr_link)) {
+ for (p = SMR_TAILQ_FIRST_LOCKED(&process.ps_threads);
+ p != NULL;
+ p = SMR_TAILQ_NEXT_LOCKED(&proc, p_thr_link)) {
if (KREAD(kd, (u_long)p, &proc)) {
_kvm_err(kd, kd->program,
"can't read proc at %lx",
@@ -376,8 +377,8 @@ kvm_proclist(kvm_t *kd, int op, int arg, struct process *pr,
if (!dothreads)
continue;
- for (p = TAILQ_FIRST(&process.ps_threads); p != NULL;
- p = TAILQ_NEXT(&proc, p_thr_link)) {
+ for (p = SMR_TAILQ_FIRST_LOCKED(&process.ps_threads); p != NULL;
+ p = SMR_TAILQ_NEXT_LOCKED(&proc, p_thr_link)) {
if (KREAD(kd, (u_long)p, &proc)) {
_kvm_err(kd, kd->program,
"can't read proc at %lx",