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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Logged In: YES
user_id=400005
The problem is in fact in the IRQ initialisation.
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
linux 2.2 clean IRQs