summaryrefslogtreecommitdiffstats
path: root/sys/sys
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2011-11-18 09:12:26 +0000
committerkib <kib@FreeBSD.org>2011-11-18 09:12:26 +0000
commitb49a65685440a2621d5d334b580d98b6d2e934a7 (patch)
tree2947b2e820c322b723e3a4a24ae2b79191b3f1ec /sys/sys
parent6332d67cd9b3ba8b163b2d90c5e405684ba4d052 (diff)
downloadFreeBSD-src-b49a65685440a2621d5d334b580d98b6d2e934a7.zip
FreeBSD-src-b49a65685440a2621d5d334b580d98b6d2e934a7.tar.gz
Consistently use process spin lock for protection of the
p->p_boundary_count. Race could cause the execve(2) from the threaded process to hung since thread boundary counter was incorrect and single-threading never finished. Reported by: pluknet, pho Tested by: pho MFC after: 1 week
Diffstat (limited to 'sys/sys')
-rw-r--r--sys/sys/proc.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/sys/proc.h b/sys/sys/proc.h
index 813c236..82cdae1 100644
--- a/sys/sys/proc.h
+++ b/sys/sys/proc.h
@@ -532,7 +532,7 @@ struct proc {
struct thread *p_singlethread;/* (c + j) If single threading this is it */
int p_suspcount; /* (j) Num threads in suspended mode. */
struct thread *p_xthread; /* (c) Trap thread */
- int p_boundary_count;/* (c) Num threads at user boundary */
+ int p_boundary_count;/* (j) Num threads at user boundary */
int p_pendingcnt; /* how many signals are pending */
struct itimers *p_itimers; /* (c) POSIX interval timers. */
struct procdesc *p_procdesc; /* (e) Process descriptor, if any. */
OpenPOWER on IntegriCloud