diff options
| author | Jeff Garzik <jgarzik@pobox.com> | 2005-10-04 10:16:31 -0400 |
|---|---|---|
| committer | Jeff Garzik <jgarzik@pobox.com> | 2005-10-04 10:16:31 -0400 |
| commit | 2ee73cc2d507df7b28050fba5d08bd33dd34848c (patch) | |
| tree | af5f33b265318e0f4b61f788691fe4f780ec402c /arch/um/kernel | |
| parent | c1d9728ecc5b560465df3c0c0d3b3825c2710b40 (diff) | |
| parent | ed39f731ab2e77e58122232f6e27333331d7793d (diff) | |
Merge /spare/repo/linux-2.6/
Diffstat (limited to 'arch/um/kernel')
| -rw-r--r-- | arch/um/kernel/irq.c | 1 | ||||
| -rw-r--r-- | arch/um/kernel/skas/Makefile | 2 | ||||
| -rw-r--r-- | arch/um/kernel/skas/util/Makefile | 5 | ||||
| -rw-r--r-- | arch/um/kernel/skas/util/mk_ptregs-i386.c | 49 | ||||
| -rw-r--r-- | arch/um/kernel/skas/util/mk_ptregs-x86_64.c | 66 | ||||
| -rw-r--r-- | arch/um/kernel/trap_kern.c | 5 | ||||
| -rw-r--r-- | arch/um/kernel/um_arch.c | 2 |
7 files changed, 6 insertions, 124 deletions
diff --git a/arch/um/kernel/irq.c b/arch/um/kernel/irq.c index dcd814971995..bbf94bf2921e 100644 --- a/arch/um/kernel/irq.c +++ b/arch/um/kernel/irq.c | |||
| @@ -9,7 +9,6 @@ | |||
| 9 | #include "linux/kernel.h" | 9 | #include "linux/kernel.h" |
| 10 | #include "linux/module.h" | 10 | #include "linux/module.h" |
| 11 | #include "linux/smp.h" | 11 | #include "linux/smp.h" |
| 12 | #include "linux/irq.h" | ||
| 13 | #include "linux/kernel_stat.h" | 12 | #include "linux/kernel_stat.h" |
| 14 | #include "linux/interrupt.h" | 13 | #include "linux/interrupt.h" |
| 15 | #include "linux/random.h" | 14 | #include "linux/random.h" |
diff --git a/arch/um/kernel/skas/Makefile b/arch/um/kernel/skas/Makefile index db36c7c95940..8de471b59c1c 100644 --- a/arch/um/kernel/skas/Makefile +++ b/arch/um/kernel/skas/Makefile | |||
| @@ -6,8 +6,6 @@ | |||
| 6 | obj-y := clone.o exec_kern.o mem.o mem_user.o mmu.o process.o process_kern.o \ | 6 | obj-y := clone.o exec_kern.o mem.o mem_user.o mmu.o process.o process_kern.o \ |
| 7 | syscall.o tlb.o trap_user.o uaccess.o | 7 | syscall.o tlb.o trap_user.o uaccess.o |
| 8 | 8 | ||
| 9 | subdir- := util | ||
| 10 | |||
| 11 | USER_OBJS := process.o clone.o | 9 | USER_OBJS := process.o clone.o |
| 12 | 10 | ||
| 13 | include arch/um/scripts/Makefile.rules | 11 | include arch/um/scripts/Makefile.rules |
diff --git a/arch/um/kernel/skas/util/Makefile b/arch/um/kernel/skas/util/Makefile deleted file mode 100644 index f7b7eba83340..000000000000 --- a/arch/um/kernel/skas/util/Makefile +++ /dev/null | |||
| @@ -1,5 +0,0 @@ | |||
| 1 | hostprogs-y := mk_ptregs | ||
| 2 | always := $(hostprogs-y) | ||
| 3 | |||
| 4 | mk_ptregs-objs := mk_ptregs-$(SUBARCH).o | ||
| 5 | HOSTCFLAGS_mk_ptregs-$(SUBARCH).o := -I$(objtree)/arch/um | ||
diff --git a/arch/um/kernel/skas/util/mk_ptregs-i386.c b/arch/um/kernel/skas/util/mk_ptregs-i386.c deleted file mode 100644 index 1f96e1eeb8a7..000000000000 --- a/arch/um/kernel/skas/util/mk_ptregs-i386.c +++ /dev/null | |||
| @@ -1,49 +0,0 @@ | |||
| 1 | #include <stdio.h> | ||
| 2 | #include <user-offsets.h> | ||
| 3 | |||
| 4 | #define SHOW(name) printf("#define %s %d\n", #name, name) | ||
| 5 | |||
| 6 | int main(int argc, char **argv) | ||
| 7 | { | ||
| 8 | printf("/* Automatically generated by " | ||
| 9 | "arch/um/kernel/skas/util/mk_ptregs */\n"); | ||
| 10 | printf("\n"); | ||
| 11 | printf("#ifndef __SKAS_PT_REGS_\n"); | ||
| 12 | printf("#define __SKAS_PT_REGS_\n"); | ||
| 13 | printf("\n"); | ||
| 14 | SHOW(HOST_FRAME_SIZE); | ||
| 15 | SHOW(HOST_FP_SIZE); | ||
| 16 | SHOW(HOST_XFP_SIZE); | ||
| 17 | |||
| 18 | SHOW(HOST_IP); | ||
| 19 | SHOW(HOST_SP); | ||
| 20 | SHOW(HOST_EFLAGS); | ||
| 21 | SHOW(HOST_EAX); | ||
| 22 | SHOW(HOST_EBX); | ||
| 23 | SHOW(HOST_ECX); | ||
| 24 | SHOW(HOST_EDX); | ||
| 25 | SHOW(HOST_ESI); | ||
| 26 | SHOW(HOST_EDI); | ||
| 27 | SHOW(HOST_EBP); | ||
| 28 | SHOW(HOST_CS); | ||
| 29 | SHOW(HOST_SS); | ||
| 30 | SHOW(HOST_DS); | ||
| 31 | SHOW(HOST_FS); | ||
| 32 | SHOW(HOST_ES); | ||
| 33 | SHOW(HOST_GS); | ||
| 34 | |||
| 35 | printf("\n"); | ||
| 36 | printf("#endif\n"); | ||
| 37 | return(0); | ||
| 38 | } | ||
| 39 | |||
| 40 | /* | ||
| 41 | * Overrides for Emacs so that we follow Linus's tabbing style. | ||
| 42 | * Emacs will notice this stuff at the end of the file and automatically | ||
| 43 | * adjust the settings for this buffer only. This must remain at the end | ||
| 44 | * of the file. | ||
| 45 | * --------------------------------------------------------------------------- | ||
| 46 | * Local variables: | ||
| 47 | * c-file-style: "linux" | ||
| 48 | * End: | ||
| 49 | */ | ||
diff --git a/arch/um/kernel/skas/util/mk_ptregs-x86_64.c b/arch/um/kernel/skas/util/mk_ptregs-x86_64.c deleted file mode 100644 index 5fccbfe35f78..000000000000 --- a/arch/um/kernel/skas/util/mk_ptregs-x86_64.c +++ /dev/null | |||
| @@ -1,66 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * Copyright 2003 PathScale, Inc. | ||
| 3 | * | ||
| 4 | * Licensed under the GPL | ||
| 5 | */ | ||
| 6 | |||
| 7 | #include <stdio.h> | ||
| 8 | #include <user-offsets.h> | ||
| 9 | |||
| 10 | #define SHOW(name) \ | ||
| 11 | printf("#define %s (%d / sizeof(unsigned long))\n", #name, name) | ||
| 12 | |||
| 13 | int main(int argc, char **argv) | ||
| 14 | { | ||
| 15 | printf("/* Automatically generated by " | ||
| 16 | "arch/um/kernel/skas/util/mk_ptregs */\n"); | ||
| 17 | printf("\n"); | ||
| 18 | printf("#ifndef __SKAS_PT_REGS_\n"); | ||
| 19 | printf("#define __SKAS_PT_REGS_\n"); | ||
| 20 | SHOW(HOST_FRAME_SIZE); | ||
| 21 | SHOW(HOST_RBX); | ||
| 22 | SHOW(HOST_RCX); | ||
| 23 | SHOW(HOST_RDI); | ||
| 24 | SHOW(HOST_RSI); | ||
| 25 | SHOW(HOST_RDX); | ||
| 26 | SHOW(HOST_RBP); | ||
| 27 | SHOW(HOST_RAX); | ||
| 28 | SHOW(HOST_R8); | ||
| 29 | SHOW(HOST_R9); | ||
| 30 | SHOW(HOST_R10); | ||
| 31 | SHOW(HOST_R11); | ||
| 32 | SHOW(HOST_R12); | ||
| 33 | SHOW(HOST_R13); | ||
| 34 | SHOW(HOST_R14); | ||
| 35 | SHOW(HOST_R15); | ||
| 36 | SHOW(HOST_ORIG_RAX); | ||
| 37 | SHOW(HOST_CS); | ||
| 38 | SHOW(HOST_SS); | ||
| 39 | SHOW(HOST_EFLAGS); | ||
| 40 | #if 0 | ||
| 41 | SHOW(HOST_FS); | ||
| 42 | SHOW(HOST_GS); | ||
| 43 | SHOW(HOST_DS); | ||
| 44 | SHOW(HOST_ES); | ||
| 45 | #endif | ||
| 46 | |||
| 47 | SHOW(HOST_IP); | ||
| 48 | SHOW(HOST_SP); | ||
| 49 | printf("#define HOST_FP_SIZE 0\n"); | ||
| 50 | printf("#define HOST_XFP_SIZE 0\n"); | ||
| 51 | printf("\n"); | ||
| 52 | printf("\n"); | ||
| 53 | printf("#endif\n"); | ||
| 54 | return(0); | ||
| 55 | } | ||
| 56 | |||
| 57 | /* | ||
| 58 | * Overrides for Emacs so that we follow Linus's tabbing style. | ||
| 59 | * Emacs will notice this stuff at the end of the file and automatically | ||
| 60 | * adjust the settings for this buffer only. This must remain at the end | ||
| 61 | * of the file. | ||
| 62 | * --------------------------------------------------------------------------- | ||
| 63 | * Local variables: | ||
| 64 | * c-file-style: "linux" | ||
| 65 | * End: | ||
| 66 | */ | ||
diff --git a/arch/um/kernel/trap_kern.c b/arch/um/kernel/trap_kern.c index d297429ac360..95c8f8733baf 100644 --- a/arch/um/kernel/trap_kern.c +++ b/arch/um/kernel/trap_kern.c | |||
| @@ -26,6 +26,9 @@ | |||
| 26 | #include "mconsole_kern.h" | 26 | #include "mconsole_kern.h" |
| 27 | #include "mem.h" | 27 | #include "mem.h" |
| 28 | #include "mem_kern.h" | 28 | #include "mem_kern.h" |
| 29 | #ifdef CONFIG_MODE_SKAS | ||
| 30 | #include "skas.h" | ||
| 31 | #endif | ||
| 29 | 32 | ||
| 30 | /* Note this is constrained to return 0, -EFAULT, -EACCESS, -ENOMEM by segv(). */ | 33 | /* Note this is constrained to return 0, -EFAULT, -EACCESS, -ENOMEM by segv(). */ |
| 31 | int handle_page_fault(unsigned long address, unsigned long ip, | 34 | int handle_page_fault(unsigned long address, unsigned long ip, |
| @@ -134,7 +137,7 @@ unsigned long segv(struct faultinfo fi, unsigned long ip, int is_user, void *sc) | |||
| 134 | else if(current->mm == NULL) | 137 | else if(current->mm == NULL) |
| 135 | panic("Segfault with no mm"); | 138 | panic("Segfault with no mm"); |
| 136 | 139 | ||
| 137 | if (SEGV_IS_FIXABLE(&fi)) | 140 | if (SEGV_IS_FIXABLE(&fi) || SEGV_MAYBE_FIXABLE(&fi)) |
| 138 | err = handle_page_fault(address, ip, is_write, is_user, &si.si_code); | 141 | err = handle_page_fault(address, ip, is_write, is_user, &si.si_code); |
| 139 | else { | 142 | else { |
| 140 | err = -EFAULT; | 143 | err = -EFAULT; |
diff --git a/arch/um/kernel/um_arch.c b/arch/um/kernel/um_arch.c index f0a275947d34..93dc782dc1cc 100644 --- a/arch/um/kernel/um_arch.c +++ b/arch/um/kernel/um_arch.c | |||
| @@ -334,6 +334,8 @@ int linux_main(int argc, char **argv) | |||
| 334 | add_arg(DEFAULT_COMMAND_LINE); | 334 | add_arg(DEFAULT_COMMAND_LINE); |
| 335 | 335 | ||
| 336 | os_early_checks(); | 336 | os_early_checks(); |
| 337 | if (force_tt) | ||
| 338 | clear_can_do_skas(); | ||
| 337 | mode_tt = force_tt ? 1 : !can_do_skas(); | 339 | mode_tt = force_tt ? 1 : !can_do_skas(); |
| 338 | #ifndef CONFIG_MODE_TT | 340 | #ifndef CONFIG_MODE_TT |
| 339 | if (mode_tt) { | 341 | if (mode_tt) { |
