diff options
| author | Al Viro <viro@zeniv.linux.org.uk> | 2012-10-10 21:35:42 -0400 |
|---|---|---|
| committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-10-12 13:35:22 -0400 |
| commit | 22e2430d60dbdfcdd732a086e9ef2dbd74c266d1 (patch) | |
| tree | 687067fcaf2761015639178033ee16c8511703b8 /arch/um/kernel | |
| parent | a74fb73c12398b250fdc5e333a11e15a9e3a84fc (diff) | |
x86, um: convert to saner kernel_execve() semantics
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/um/kernel')
| -rw-r--r-- | arch/um/kernel/exec.c | 5 | ||||
| -rw-r--r-- | arch/um/kernel/process.c | 10 |
2 files changed, 3 insertions, 12 deletions
diff --git a/arch/um/kernel/exec.c b/arch/um/kernel/exec.c index e427301f55d..565ca396d83 100644 --- a/arch/um/kernel/exec.c +++ b/arch/um/kernel/exec.c | |||
| @@ -47,8 +47,3 @@ void start_thread(struct pt_regs *regs, unsigned long eip, unsigned long esp) | |||
| 47 | #endif | 47 | #endif |
| 48 | } | 48 | } |
| 49 | EXPORT_SYMBOL(start_thread); | 49 | EXPORT_SYMBOL(start_thread); |
| 50 | |||
| 51 | void __noreturn ret_from_kernel_execve(struct pt_regs *unused) | ||
| 52 | { | ||
| 53 | UML_LONGJMP(current->thread.exec_buf, 1); | ||
| 54 | } | ||
diff --git a/arch/um/kernel/process.c b/arch/um/kernel/process.c index a1b50add48a..94b0d8b9810 100644 --- a/arch/um/kernel/process.c +++ b/arch/um/kernel/process.c | |||
| @@ -135,14 +135,10 @@ void new_thread_handler(void) | |||
| 135 | arg = current->thread.request.u.thread.arg; | 135 | arg = current->thread.request.u.thread.arg; |
| 136 | 136 | ||
| 137 | /* | 137 | /* |
| 138 | * The return value is 1 if the kernel thread execs a process, | 138 | * callback returns only if the kernel thread execs a process |
| 139 | * 0 if it just exits | ||
| 140 | */ | 139 | */ |
| 141 | n = run_kernel_thread(fn, arg, ¤t->thread.exec_buf); | 140 | n = fn(arg); |
| 142 | if (n == 1) | 141 | userspace(¤t->thread.regs.regs); |
| 143 | userspace(¤t->thread.regs.regs); | ||
| 144 | else | ||
| 145 | do_exit(0); | ||
| 146 | } | 142 | } |
| 147 | 143 | ||
| 148 | /* Called magically, see new_thread_handler above */ | 144 | /* Called magically, see new_thread_handler above */ |
