Patch-ID# 100359-08
Keywords: panic assertion, console printf hangs, setrun, process, interrupt, poll
Synopsis: SunOS 4.1.1;4.1.2;4.1.3: streams jumbo patch
Date: Jun/28/94
 
SunOS release: 4.1.1 4.1.2 4.1.3 4.1.3 4.1.3C
 
Topic: Streams Jumbo Patch, revision update for 4.1.3 compatibility
 
BugId's fixed with this patch: 1055188 1068158 1044100 1044888 1047355 1058097 1061174

Changes incorporated in this version: 1055188

Architectures for which this patch is available: Sun3 Sun3x Sun4 Sun4c Sun4m

Patches accumulated and obsoleted by this patch: 100179 100233 100255 100279 100310 100189

Patches which may conflict with this patch:

IMPORTANT: This patch can be installed on a system with DBE1.1, 1.2, and 1.3
	   installed.  Just make sure that the dbe versions of the
	   str_syscalls.o is used. This applies to each sparc architecture.

Obsoleted by: 4.1.3_U1

Problem Description:

This revision is a reissue of withdrawn patch 100359-07 to correct problems
with the packaging of that revision.

Bugid 1055188
setrun gets going polltime, and an interrupt comes in on the tty
and causes data to be  passed up the stream.
read_put procedure simply queues the data on the stream head
(which calls setrun to wake up the process).
After the interrupt returns the setrun() call from polltime() resumes
trying to wake an already awake process causing a panic.

2/6/92 This version of the patch contained the additional binaries 
for sun4m architecture.

Bugid 1068158
System crash with assertion failure vp->v_stream when using clone
driver.

Bugid 1044100
This patch incorporates the fix for bug id #1044100 which results
in a machine freeze.

Bugid 1044888
This patch also fixes a bug where kernel printf hangs the system.

Bugid 1047355
Polling not working correctly.

Bugid 1058097
System crash with panic data fault, with bad buffer pointer, usually
in the login process.

Bugid 1061174
'poll()' does not return -1 when 'poll()' receives a signal when polling
fds greater than 30.

Bugid 1058097 (11/11/91 100359-03)
The same system crash panic data fault can occur when the ioctl FIONREAD
is being processed.


INSTALL:

	As root, make a backup copy of the files to be patched:

        mv /sys/`uname -m`/OBJ/str_io.o /sys/`uname -m`/OBJ/str_io.o_orig
        mv /sys/`uname -m`/OBJ/str_syscalls.o /sys/`uname -m`/OBJ/str_syscalls.o_orig
	Now install the patched files:

        cp `uname -m`/`uname -r`/str_io.o /sys/`uname -m`/OBJ
        cp `uname -m`/`uname -r`/str_syscalls.o /sys/`uname -m`/OBJ

OR FOR SYSTEMS WITH DBE:
        cp `uname -m`/`uname -r`/str_io.o /sys/`uname -m`/OBJ
        cp `uname -m`/`uname -r`/str_syscalls.dbe.o /sys/`uname -m`/OBJ/str_syscalls.o

        chmod 444 /sys/`uname -m`/OBJ/str_io.o
        chmod 444 /sys/`uname -m`/OBJ/str_syscalls.o

Then a new kernel will need to be made

Please refer to the System and Network Administration manual
on building and installing a custom kernel.
