Subject: sgiserial - hang on shutdown

From: Florian Lohoff <[email-masked]>
Date: Tue, 16 Jan 2001 19:55:09 +0100

Hi,
does anyone else see this phenomenon ?

Everytime i try to shutdown on serial console the machine hangs at some
stage and i have to manually press the reset button. As a result no
automatic reboot is possible and all filesystems get shut down unclean.

resume:~# halt
Broadcast message from root (console) Tue Jan 16 18:42:22 2001...
The system is going down for system halt NOW !!
INIT: Switching to runlevel: 0
INIT: Sending processes the TERM signal
INIT: SeStopping INET services: inetd
Stopping portmap services: portmap
Saving random seed...
Unmounting remote filesystems.
Disabling IPv4 packet forwarding.
Ino more processes left in this runlevel

At this point - no more output - even after 30 minutes etc - System
seems to be halted. As one can see there is multiple types of output
intermixed. I guess its something with the serial console vs serial
tty stuff which gets mixed and due to that interrupts getting lost which
leeds me to a question. What is this for spread all over the sgiserial.c

if (ioc_icontrol)
	junk = ioc_icontrol->istat0;

or even reading ioc_icontrol->istat0 unconditionally. I guess its for
acknowledging interrupts. This is also done in zs_cons_put_char which
is would definitly be wrong as the serial console shouldnt generate
interrupts nor change any of the states which could confuse the interrupt
driven tty driver. I guess the right thing to do would be to simply let
an interrupt happen.

Flo
-- 
Florian Lohoff                  [email-masked]             +49-5201-669912
     Why is it called "common sense" when nobody seems to have any?