aboutsummaryrefslogtreecommitdiffstats
path: root/arch/um/os-Linux
diff options
context:
space:
mode:
authorJeff Dike <jdike@addtoit.com>2007-10-16 04:27:05 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-16 12:43:05 -0400
commitfab95c55e3b94e219044dc7a558632d08c198771 (patch)
tree2ce8bf6eb52e66ee69a0b03cf9ad60310279524e /arch/um/os-Linux
parent0a7675aa204ac2470bb06f562557978b03914a71 (diff)
uml: get rid of do_longjmp
do_longjmp used to be needed when UML didn't have its own implementation of setjmp and longjmp. They came from libc, and couldn't be called directly from kernel code, as the libc jmp_buf couldn't be imported there. do_longjmp was a userspace function which served to provide longjmp access to kernel code. This is gone, and a number of void * pointers can now be jmp_buf *. Signed-off-by: Jeff Dike <jdike@linux.intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/um/os-Linux')
-rw-r--r--arch/um/os-Linux/process.c2
-rw-r--r--arch/um/os-Linux/trap.c7
-rw-r--r--arch/um/os-Linux/uaccess.c2
3 files changed, 2 insertions, 9 deletions
diff --git a/arch/um/os-Linux/process.c b/arch/um/os-Linux/process.c
index b2e0d8c4258c..8b57eb3647f5 100644
--- a/arch/um/os-Linux/process.c
+++ b/arch/um/os-Linux/process.c
@@ -249,7 +249,7 @@ void init_new_thread_signals(void)
249 init_irq_signals(1); 249 init_irq_signals(1);
250} 250}
251 251
252int run_kernel_thread(int (*fn)(void *), void *arg, void **jmp_ptr) 252int run_kernel_thread(int (*fn)(void *), void *arg, jmp_buf **jmp_ptr)
253{ 253{
254 jmp_buf buf; 254 jmp_buf buf;
255 int n; 255 int n;
diff --git a/arch/um/os-Linux/trap.c b/arch/um/os-Linux/trap.c
index be8e029f58b4..d3a34ca8a891 100644
--- a/arch/um/os-Linux/trap.c
+++ b/arch/um/os-Linux/trap.c
@@ -22,10 +22,3 @@ void os_fill_handlinfo(struct kern_handlers h)
22 sig_info[SIGVTALRM] = h.timer_handler; 22 sig_info[SIGVTALRM] = h.timer_handler;
23 sig_info[SIGALRM] = h.timer_handler; 23 sig_info[SIGALRM] = h.timer_handler;
24} 24}
25
26void do_longjmp(void *b, int val)
27{
28 jmp_buf *buf = b;
29
30 UML_LONGJMP(buf, val);
31}
diff --git a/arch/um/os-Linux/uaccess.c b/arch/um/os-Linux/uaccess.c
index bbb73a650370..8d27b6d1df91 100644
--- a/arch/um/os-Linux/uaccess.c
+++ b/arch/um/os-Linux/uaccess.c
@@ -8,7 +8,7 @@
8#include "longjmp.h" 8#include "longjmp.h"
9 9
10unsigned long __do_user_copy(void *to, const void *from, int n, 10unsigned long __do_user_copy(void *to, const void *from, int n,
11 void **fault_addr, void **fault_catcher, 11 void **fault_addr, jmp_buf **fault_catcher,
12 void (*op)(void *to, const void *from, 12 void (*op)(void *to, const void *from,
13 int n), int *faulted_out) 13 int n), int *faulted_out)
14{ 14{