diff options
author | Jeff Dike <jdike@addtoit.com> | 2006-09-27 04:50:37 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-09-27 11:26:16 -0400 |
commit | 53dd2b55c50c810073615c79816bc06aea02dba9 (patch) | |
tree | 7576ae7d1ab19701a20f6a906208526a69c4b697 /arch/um/kernel/trap.c | |
parent | 09b185a3169c5a8f9b7baf97f16d32add7e10ca4 (diff) |
[PATCH] uml: use correct SIGBUS handler
BB noticed that we had the wrong bus error handler.
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/um/kernel/trap.c')
-rw-r--r-- | arch/um/kernel/trap.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/arch/um/kernel/trap.c b/arch/um/kernel/trap.c index e44ff6eca496..61a23fff4395 100644 --- a/arch/um/kernel/trap.c +++ b/arch/um/kernel/trap.c | |||
@@ -140,14 +140,6 @@ void segv_handler(int sig, union uml_pt_regs *regs) | |||
140 | segv(*fi, UPT_IP(regs), UPT_IS_USER(regs), regs); | 140 | segv(*fi, UPT_IP(regs), UPT_IS_USER(regs), regs); |
141 | } | 141 | } |
142 | 142 | ||
143 | const struct kern_handlers handlinfo_kern = { | ||
144 | .relay_signal = relay_signal, | ||
145 | .winch = winch, | ||
146 | .bus_handler = relay_signal, | ||
147 | .page_fault = segv_handler, | ||
148 | .sigio_handler = sigio_handler, | ||
149 | .timer_handler = timer_handler | ||
150 | }; | ||
151 | /* | 143 | /* |
152 | * We give a *copy* of the faultinfo in the regs to segv. | 144 | * We give a *copy* of the faultinfo in the regs to segv. |
153 | * This must be done, since nesting SEGVs could overwrite | 145 | * This must be done, since nesting SEGVs could overwrite |
@@ -253,6 +245,15 @@ void winch(int sig, union uml_pt_regs *regs) | |||
253 | do_IRQ(WINCH_IRQ, regs); | 245 | do_IRQ(WINCH_IRQ, regs); |
254 | } | 246 | } |
255 | 247 | ||
248 | const struct kern_handlers handlinfo_kern = { | ||
249 | .relay_signal = relay_signal, | ||
250 | .winch = winch, | ||
251 | .bus_handler = bus_handler, | ||
252 | .page_fault = segv_handler, | ||
253 | .sigio_handler = sigio_handler, | ||
254 | .timer_handler = timer_handler | ||
255 | }; | ||
256 | |||
256 | void trap_init(void) | 257 | void trap_init(void) |
257 | { | 258 | { |
258 | } | 259 | } |