2003-03-04 Roland McGrath <roland@redhat.com>
* syscall.c (get_scno) [IA64]: Do TCB_WAITEXECVE check only when
TCB_INSYSCALL is clear, like other platforms do.
diff --git a/syscall.c b/syscall.c
index bb11869..9814a43 100644
--- a/syscall.c
+++ b/syscall.c
@@ -919,11 +919,15 @@
if (ia32) {
if (upeek(pid, PT_R1, &scno) < 0) /* orig eax */
return -1;
- /* Check if we return from execve. */
} else {
if (upeek (pid, PT_R15, &scno) < 0)
return -1;
}
+ /* Check if we return from execve. */
+ if (tcp->flags & TCB_WAITEXECVE) {
+ tcp->flags &= ~TCB_WAITEXECVE;
+ return 0;
+ }
} else {
/* syscall in progress */
if (upeek (pid, PT_R8, &r8) < 0)
@@ -931,11 +935,6 @@
if (upeek (pid, PT_R10, &r10) < 0)
return -1;
}
- if (tcp->flags & TCB_WAITEXECVE) {
- tcp->flags &= ~TCB_WAITEXECVE;
- return 0;
- }
-
#elif defined (ARM)
{
long pc;