[net.unix-wizards] panic from interrupt stack loses

rws%mit-bold@sri-unix.UUCP (12/21/83)

From:  Robert W. Scheifler <rws@mit-bold>

Description:
	Despite my earlier bug fix for the spl1() in boot(), calling
	panic while executing on the interrupt stack still loses,
	because update() gets called, and eventually biowait(), which
	calls sleep(), which does an spl0().  A (disk) interrupt
	will then eventually cause an REI back on to the interrupt
	stack at IPL 0, which is illegal, causing a
	panic: Reserved operand.
Repeat-By:
	Cause a panic in an interrupt service routine while there
	are outstanding disk writes.
Fix:
	There is no easy fix as far as I can see.
	It might be better if such panics didn't try to update()?

fair@dual.UUCP (Erik E. Fair) (01/04/84)

Another annoying thing about panic in this vein:

	On our s-100 68000 System, we use some disk controllers (not by
	choice, I assure you) that LATCH their interrupts, so that you
	have to tell them to shut up. When you panic in the interrupt
	service routine of any of these devices, guess what? The panic
	keeps coming back again, and again...

	Since panic does an update(), is it assumed that disk drivers
	never panic? Didn't the PDP-11 ever have hardware that was brain
	damaged in this fashion?

	In the driver that I wrote for just such a board, I was
	eventually forced to write a quick macro for panic(), that
	printed a message and then went while(1); if for no other
	reason than to be able to read the panic message that I
	originally got...

	Erik E. Fair	{ucbvax,amd70,zehntel,unisoft,onyx,its}!dual!fair
			Dual Systems Corporation, Berkeley, California