git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vserver 1.9.3
[linux-2.6.git]
/
arch
/
um
/
kernel
/
skas
/
exec_user.c
diff --git
a/arch/um/kernel/skas/exec_user.c
b/arch/um/kernel/skas/exec_user.c
index
c9942b6
..
d50633a
100644
(file)
--- a/
arch/um/kernel/skas/exec_user.c
+++ b/
arch/um/kernel/skas/exec_user.c
@@
-11,6
+11,7
@@
#include <sys/ptrace.h>
#include "user.h"
#include "kern_util.h"
#include <sys/ptrace.h>
#include "user.h"
#include "kern_util.h"
+#include "user_util.h"
#include "os.h"
#include "time_user.h"
#include "os.h"
#include "time_user.h"
@@
-26,7
+27,7
@@
static int user_thread_tramp(void *arg)
int user_thread(unsigned long stack, int flags)
{
int user_thread(unsigned long stack, int flags)
{
- int pid, status;
+ int pid, status
, err
;
pid = clone(user_thread_tramp, (void *) stack_sp(stack),
flags | CLONE_FILES | SIGCHLD, NULL);
pid = clone(user_thread_tramp, (void *) stack_sp(stack),
flags | CLONE_FILES | SIGCHLD, NULL);
@@
-35,7
+36,8
@@
int user_thread(unsigned long stack, int flags)
return(pid);
}
return(pid);
}
- if(waitpid(pid, &status, WUNTRACED) < 0){
+ CATCH_EINTR(err = waitpid(pid, &status, WUNTRACED));
+ if(err < 0){
printk("user_thread - waitpid failed, errno = %d\n", errno);
return(-errno);
}
printk("user_thread - waitpid failed, errno = %d\n", errno);
return(-errno);
}