BB noticed that we had the wrong bus error handler.
Signed-off-by: Jeff Dike <[email protected]>
Index: linux-2.6.18-mm/arch/um/kernel/trap.c
===================================================================
--- linux-2.6.18-mm.orig/arch/um/kernel/trap.c 2006-09-22 09:19:50.000000000 -0400
+++ linux-2.6.18-mm/arch/um/kernel/trap.c 2006-09-22 09:24:03.000000000 -0400
@@ -139,14 +139,6 @@ void segv_handler(int sig, union uml_pt_
segv(*fi, UPT_IP(regs), UPT_IS_USER(regs), regs);
}
-const struct kern_handlers handlinfo_kern = {
- .relay_signal = relay_signal,
- .winch = winch,
- .bus_handler = relay_signal,
- .page_fault = segv_handler,
- .sigio_handler = sigio_handler,
- .timer_handler = timer_handler
-};
/*
* We give a *copy* of the faultinfo in the regs to segv.
* This must be done, since nesting SEGVs could overwrite
@@ -252,6 +244,15 @@ void winch(int sig, union uml_pt_regs *r
do_IRQ(WINCH_IRQ, regs);
}
+const struct kern_handlers handlinfo_kern = {
+ .relay_signal = relay_signal,
+ .winch = winch,
+ .bus_handler = bus_handler,
+ .page_fault = segv_handler,
+ .sigio_handler = sigio_handler,
+ .timer_handler = timer_handler
+};
+
void trap_init(void)
{
}