diff options
author | Jeff Dike <jdike@addtoit.com> | 2007-10-16 04:26:58 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-16 12:43:05 -0400 |
commit | 77bf4400319db9d2a8af6b00c2be6faa0f3d07cb (patch) | |
tree | ddc8fd48349b8d4dd2c0b26bce7f52f79b4e4077 /arch/um/kernel/exec.c | |
parent | ae2587e41254e48e670346aefa332d7469d86352 (diff) |
uml: remove code made redundant by CHOOSE_MODE removal
This patch makes a number of simplifications enabled by the removal of
CHOOSE_MODE. There were lots of functions that looked like
int foo(args){
foo_skas(args);
}
The bodies of foo_skas are now folded into foo, and their declarations (and
sometimes entire header files) are deleted.
In addition, the union uml_pt_regs, which was a union between the tt and skas
register formats, is now a struct, with the tt-mode arm of the union being
removed.
It turns out that usr2_handler was unused, so it is gone.
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/kernel/exec.c')
-rw-r--r-- | arch/um/kernel/exec.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/arch/um/kernel/exec.c b/arch/um/kernel/exec.c index 8f774c25b765..5064fb691eb5 100644 --- a/arch/um/kernel/exec.c +++ b/arch/um/kernel/exec.c | |||
@@ -18,17 +18,31 @@ | |||
18 | #include "irq_user.h" | 18 | #include "irq_user.h" |
19 | #include "tlb.h" | 19 | #include "tlb.h" |
20 | #include "os.h" | 20 | #include "os.h" |
21 | #include "mode_kern.h" | 21 | #include "skas/skas.h" |
22 | 22 | ||
23 | void flush_thread(void) | 23 | void flush_thread(void) |
24 | { | 24 | { |
25 | void *data = NULL; | ||
26 | unsigned long end = proc_mm ? task_size : CONFIG_STUB_START; | ||
27 | int ret; | ||
28 | |||
25 | arch_flush_thread(¤t->thread.arch); | 29 | arch_flush_thread(¤t->thread.arch); |
26 | flush_thread_skas(); | 30 | |
31 | ret = unmap(¤t->mm->context.skas.id, 0, end, 1, &data); | ||
32 | if(ret){ | ||
33 | printk("flush_thread - clearing address space failed, " | ||
34 | "err = %d\n", ret); | ||
35 | force_sig(SIGKILL, current); | ||
36 | } | ||
37 | |||
38 | __switch_mm(¤t->mm->context.skas.id); | ||
27 | } | 39 | } |
28 | 40 | ||
29 | void start_thread(struct pt_regs *regs, unsigned long eip, unsigned long esp) | 41 | void start_thread(struct pt_regs *regs, unsigned long eip, unsigned long esp) |
30 | { | 42 | { |
31 | start_thread_skas(regs, eip, esp); | 43 | set_fs(USER_DS); |
44 | PT_REGS_IP(regs) = eip; | ||
45 | PT_REGS_SP(regs) = esp; | ||
32 | } | 46 | } |
33 | 47 | ||
34 | #ifdef CONFIG_TTY_LOG | 48 | #ifdef CONFIG_TTY_LOG |