Disable and clear IRQs. Correct a hang when we boot with EMILE: Problem: in start_kernel(), kernel hangs on the sti(). Analyse: We can suppose there are pending IRQs when we unmask them, and unfortunately handlers are not already installed. Penguin booter doesn't meet the issue because it makes a shutdown under MacOS that should clear IRQs. Solution: To avoid this case, we must avoid pending IRQs by disabling/clearing IRQs when we clear handlers (in mac_init_IRQ). Tested on the machine where the problem appears, a Performa 450/LCIII, the patch corrects the problem. Tested on a machine where the problem doesn't appear, a IIci, kernel continues to work correctly :-P Signed-off-by: Laurent Vivier --- arch/m68k/mac/macints.c 3 Jun 2003 03:20:39 -0000 1.9.2.4 +++ arch/m68k/mac/macints.c 5 Jan 2005 00:07:36 -0000 @@ -207,6 +207,8 @@ void mac_init_IRQ(void) /* Initialize the IRQ handler lists. Initially each list is empty, */ for (i = 0; i < NUM_MAC_SOURCES; i++) { + mac_disable_irq(i); + mac_clear_irq(i); mac_irq_list[i] = NULL; }