diff options
author | rwatson <rwatson@FreeBSD.org> | 2004-01-27 04:40:19 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2004-01-27 04:40:19 +0000 |
commit | 66ab2daa68fe81f08a9f975d9c778f5d3ea84595 (patch) | |
tree | 54a29217c4b5b640b88749cb50615953c6d22e08 | |
parent | ee9752cd12de59e0da274c35f5eb64ecc0ba7e0d (diff) | |
download | FreeBSD-src-66ab2daa68fe81f08a9f975d9c778f5d3ea84595.zip FreeBSD-src-66ab2daa68fe81f08a9f975d9c778f5d3ea84595.tar.gz |
Stick two XXX's in the syscall() code: we call STOPEVENT() twice for
every system call, and that grabs and release the process lock each
time. Don't fix it (yet), but document it so we know to fix it.
Also should be a 5.3-RELEASE todo item.
-rw-r--r-- | sys/i386/i386/trap.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/i386/i386/trap.c b/sys/i386/i386/trap.c index 5c8866a..c929c1b 100644 --- a/sys/i386/i386/trap.c +++ b/sys/i386/i386/trap.c @@ -1003,6 +1003,10 @@ syscall(frame) td->td_retval[0] = 0; td->td_retval[1] = frame.tf_edx; + /* + * XXX: This grabs the process lock. A bad thing in + * the system call path. + */ STOPEVENT(p, S_SCE, narg); PTRACESTOP_SC(p, td, S_PT_SCE); @@ -1065,6 +1069,10 @@ syscall(frame) #endif /* + * XXX: This grabs the process lock. A bad thing in + * the system call path. + */ + /* * This works because errno is findable through the * register set. If we ever support an emulation where this * is not the case, this code will need to be revisited. |