diff options
author | Jeff Dike <jdike@addtoit.com> | 2007-05-06 17:51:24 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-07 15:13:02 -0400 |
commit | 5d86456d3852cb95a38d2b23fe01cede54984ba5 (patch) | |
tree | a0e973d629717d93c7b4dc32ad7afd9e64f5f974 /arch/um/sys-i386/fault.c | |
parent | ccdddb57874522e6b267204f9c5e94ba7d9d66b0 (diff) |
uml: tidy fault code
Tidying in preparation for the segfault register dumping patch which follows.
void * pointers are changed to union uml_pt_regs *. This makes the types
match reality, except in arch_fixup, which is changed to operate on a union
uml_pt_regs. This fixes a bug in the call from segv_handler, which passes a
union uml_pt_regs, to segv, which expects to pass a struct sigcontext to
arch_fixup.
Whitespace and other style fixes.
There's also a errno printk fix.
Signed-off-by: Jeff Dike <jdike@linux.intel.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/um/sys-i386/fault.c')
-rw-r--r-- | arch/um/sys-i386/fault.c | 18 |
1 files changed, 2 insertions, 16 deletions
diff --git a/arch/um/sys-i386/fault.c b/arch/um/sys-i386/fault.c index d0bbcdfdb53f..745b4fd49e9f 100644 --- a/arch/um/sys-i386/fault.c +++ b/arch/um/sys-i386/fault.c | |||
@@ -3,9 +3,7 @@ | |||
3 | * Licensed under the GPL | 3 | * Licensed under the GPL |
4 | */ | 4 | */ |
5 | 5 | ||
6 | #include <signal.h> | ||
7 | #include "sysdep/ptrace.h" | 6 | #include "sysdep/ptrace.h" |
8 | #include "sysdep/sigcontext.h" | ||
9 | 7 | ||
10 | /* These two are from asm-um/uaccess.h and linux/module.h, check them. */ | 8 | /* These two are from asm-um/uaccess.h and linux/module.h, check them. */ |
11 | struct exception_table_entry | 9 | struct exception_table_entry |
@@ -17,26 +15,14 @@ struct exception_table_entry | |||
17 | const struct exception_table_entry *search_exception_tables(unsigned long add); | 15 | const struct exception_table_entry *search_exception_tables(unsigned long add); |
18 | 16 | ||
19 | /* Compare this to arch/i386/mm/extable.c:fixup_exception() */ | 17 | /* Compare this to arch/i386/mm/extable.c:fixup_exception() */ |
20 | int arch_fixup(unsigned long address, void *sc_ptr) | 18 | int arch_fixup(unsigned long address, union uml_pt_regs *regs) |
21 | { | 19 | { |
22 | struct sigcontext *sc = sc_ptr; | ||
23 | const struct exception_table_entry *fixup; | 20 | const struct exception_table_entry *fixup; |
24 | 21 | ||
25 | fixup = search_exception_tables(address); | 22 | fixup = search_exception_tables(address); |
26 | if(fixup != 0){ | 23 | if(fixup != 0){ |
27 | sc->eip = fixup->fixup; | 24 | UPT_IP(regs) = fixup->fixup; |
28 | return(1); | 25 | return(1); |
29 | } | 26 | } |
30 | return(0); | 27 | return(0); |
31 | } | 28 | } |
32 | |||
33 | /* | ||
34 | * Overrides for Emacs so that we follow Linus's tabbing style. | ||
35 | * Emacs will notice this stuff at the end of the file and automatically | ||
36 | * adjust the settings for this buffer only. This must remain at the end | ||
37 | * of the file. | ||
38 | * --------------------------------------------------------------------------- | ||
39 | * Local variables: | ||
40 | * c-file-style: "linux" | ||
41 | * End: | ||
42 | */ | ||