diff options
author | Jeff Dike <jdike@addtoit.com> | 2007-10-16 01:27:05 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-16 09:43:05 -0700 |
commit | fab95c55e3b94e219044dc7a558632d08c198771 (patch) | |
tree | 2ce8bf6eb52e66ee69a0b03cf9ad60310279524e /arch/um/os-Linux | |
parent | 0a7675aa204ac2470bb06f562557978b03914a71 (diff) | |
download | kernel_samsung_smdk4412-fab95c55e3b94e219044dc7a558632d08c198771.zip kernel_samsung_smdk4412-fab95c55e3b94e219044dc7a558632d08c198771.tar.gz kernel_samsung_smdk4412-fab95c55e3b94e219044dc7a558632d08c198771.tar.bz2 |
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.c | 2 | ||||
-rw-r--r-- | arch/um/os-Linux/trap.c | 7 | ||||
-rw-r--r-- | arch/um/os-Linux/uaccess.c | 2 |
3 files changed, 2 insertions, 9 deletions
diff --git a/arch/um/os-Linux/process.c b/arch/um/os-Linux/process.c index b2e0d8c..8b57eb3 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) init_irq_signals(1); } -int run_kernel_thread(int (*fn)(void *), void *arg, void **jmp_ptr) +int run_kernel_thread(int (*fn)(void *), void *arg, jmp_buf **jmp_ptr) { jmp_buf buf; int n; diff --git a/arch/um/os-Linux/trap.c b/arch/um/os-Linux/trap.c index be8e029..d3a34ca 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) sig_info[SIGVTALRM] = h.timer_handler; sig_info[SIGALRM] = h.timer_handler; } - -void do_longjmp(void *b, int val) -{ - jmp_buf *buf = b; - - UML_LONGJMP(buf, val); -} diff --git a/arch/um/os-Linux/uaccess.c b/arch/um/os-Linux/uaccess.c index bbb73a6..8d27b6d 100644 --- a/arch/um/os-Linux/uaccess.c +++ b/arch/um/os-Linux/uaccess.c @@ -8,7 +8,7 @@ #include "longjmp.h" unsigned long __do_user_copy(void *to, const void *from, int n, - void **fault_addr, void **fault_catcher, + void **fault_addr, jmp_buf **fault_catcher, void (*op)(void *to, const void *from, int n), int *faulted_out) { |