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.
This commit is contained in:
parent
8abaf58586
commit
bfd8097a69
@ -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);
|
||||
@ -1064,6 +1068,10 @@ syscall(frame)
|
||||
ktrsysret(code, error, td->td_retval[0]);
|
||||
#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
|
||||
|
Loading…
Reference in New Issue
Block a user