Messages in this thread Patch in this message | | | Date | Wed, 28 Feb 2001 23:10:52 +0000 | From | Andrew Morton <> | Subject | Re: i2o & Promise SuperTrak100 |
| |
David Priban wrote: > > > > Kernel panic: Aiee, killing interrupt handler ! > > > In interrupt handler - not syncing > > > > Run it through ksymoops and I might be able to guess what went wrong. > > > > In theory however i2o is a standard and all i2o works alike. In > > practice i2o > > is a pseudo standard and nobody seems to interpret the spec the > > same way, the > > implementations all tend to have bugs and the hardware sometimes does too. > > > Alan, > This is what ksymoops gave me. One thing I didn't mention before: > kernel panics when I hit Ctrl-Alt-Del after it hangs telling me this: >
This untested patch should fix the scheduling-in-interrupt thing.
--- kernel/sys.c.orig Thu Mar 1 10:06:14 2001 +++ kernel/sys.c Thu Mar 1 10:07:43 2001 @@ -330,6 +330,12 @@ return 0; } +static void deferred_cad(void *dummy) +{ + notifier_call_chain(&reboot_notifier_list, SYS_RESTART, NULL); + machine_restart(NULL); +} + /* * This function gets called by ctrl-alt-del - ie the keyboard interrupt. * As it's called within an interrupt, it may NOT sync: the only choice @@ -337,10 +343,13 @@ */ void ctrl_alt_del(void) { - if (C_A_D) { - notifier_call_chain(&reboot_notifier_list, SYS_RESTART, NULL); - machine_restart(NULL); - } else + static struct tq_struct cad_tq = { + routine: deferred_cad, + }; + + if (C_A_D) + schedule_task(&cad_tq); + else kill_proc(1, SIGINT, 1); } - - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |