Patch-ID# 106542-06
Keywords: security PPS F_SHARE kernel EINVAL ufsvfs boot.bin PAE mmu36 shmat
Synopsis: SunOS 5.7_x86: kernel update patch
Date: Aug/24/99

Solaris Release: 7_x86

SunOS Release: 5.7_x86

Unbundled Product: 

Unbundled Release: 

Xref: This patch available for SPARC as patch 106541

Topic: SunOS 5.7_x86: kernel update patch

	NOTE:  Refer to Special Install Instructions section for 
               IMPORTANT specific information on this patch.

BugId's fixed with this patch: 1264344 4104844 4115711 4115715 4120985 4122009 4136059 4138467 4139770 4143503 4147402 4152055 4155392 4163335 4165983 4166495 4167270 4168739 4170410 4170500 4170602 4173696 4174167 4174331 4174354 4175299 4175558 4176940 4177496 4178298 4178455 4179342 4179407 4179883 4181570 4182043 4182047 4182227 4182234 4182240 4182970 4184015 4184430 4184786 4184788 4184852 4184877 4185110 4185366 4185742 4186155 4186202 4188005 4188212 4190083 4190138 4190405 4190466 4190566 4190796 4190807 4190812 4190962 4190995 4191544 4192056 4192195 4192420 4192639 4193375 4193378 4193379 4193380 4193381 4193383 4193467 4193657 4194509 4196986 4196994 4196998 4197140 4197418 4197422 4197461 4198134 4198723 4198942 4199032 4199042 4199606 4200121 4200447 4200817 4200972 4201921 4202082 4203157 4204046 4205009 
BugId's fixed with this patch: 4205612 4206401 4212524 4212620 4212634 4212925 4214611 4214739 4217122 4219071 4223353 4224086 4226963 4233009 4236372 4238230 4240566 4242668 

Changes incorporated in this version: 4166495 4184786 4184788 4185110 4190466 4192195 4205009 4212925 4214611 4219071 4223353 4224086 4226963 4233009 4236372 4238230 4240566 4242668

Relevant Architectures: i386

Patches accumulated and obsoleted by this patch: 106914-04 106977-01 107440-01 

Patches which conflict with this patch: 

Patches required with this patch: 

Obsoleted by: 

Files included with this patch:

/boot/solaris/boot.bin
/etc/devlink.tab
/etc/fs/hsfs/mount
/etc/fs/ufs/mount
/etc/init.d/autofs
/etc/init.d/coreadm
/etc/init.d/nfs.client
/etc/init.d/pcmcia
/etc/init.d/rootusr
/etc/init.d/rpc
/etc/init.d/syslog
/etc/init.d/tsquantum
/etc/init.d/volmgt
/etc/inittab
/etc/minor_perm
/etc/name_to_major
/etc/name_to_sysnum
/etc/rc0.d/K35volmgt
/etc/rc0.d/K40syslog
/etc/rc0.d/K41autofs
/etc/rc0.d/K41nfs.client
/etc/rc0.d/K41rpc
/etc/rc0.d/K78pcmcia
/etc/rc1.d/K35volmgt
/etc/rc1.d/K40syslog
/etc/rc1.d/K41autofs
/etc/rc1.d/K41rpc
/etc/rc2.d/S71rpc
/etc/rc2.d/S73nfs.client
/etc/rc2.d/S74autofs
/etc/rc2.d/S74syslog
/etc/rc2.d/S92volmgt
/etc/rc2.d/S99tsquantum
/etc/rcS.d/K35volmgt
/etc/rcS.d/K40syslog
/etc/rcS.d/K41autofs
/etc/rcS.d/K41rpc
/etc/rcS.d/S30rootusr.sh
/etc/rcS.d/S42coreadm
/etc/rcS.d/S65pcmcia
/etc/syslog.conf
/kernel/drv/cn
/kernel/drv/devinfo
/kernel/drv/ip
/kernel/drv/iwscn
/kernel/drv/log
/kernel/drv/mm
/kernel/drv/poll
/kernel/drv/poll.conf
/kernel/drv/sysmsg
/kernel/drv/sysmsg.conf
/kernel/drv/tcp
/kernel/drv/udp
/kernel/drv/wc
/kernel/exec/elfexec
/kernel/fs/nfs
/kernel/fs/procfs
/kernel/fs/specfs
/kernel/fs/ufs
/kernel/genunix
/kernel/misc/gld
/kernel/misc/klmmod
/kernel/misc/klmops
/kernel/misc/krtld
/kernel/misc/scsi
/kernel/misc/strplumb
/kernel/misc/swapgeneric
/kernel/misc/ufs_log
/kernel/sys/doorfs
/kernel/sys/inst_sync
/kernel/sys/kaio
/kernel/sys/nfs
/platform/i86pc/kadb
/platform/i86pc/kernel/drv/rootnex
/platform/i86pc/kernel/misc/emul_80387
/platform/i86pc/kernel/mmu/mmu32
/platform/i86pc/kernel/mmu/mmu36
/platform/i86pc/kernel/unix
/sbin/mount
/sbin/mountall
/sbin/rc1
/sbin/rcS
/sbin/sulogin
/usr/bin/coreadm
/usr/bin/i86/adb
/usr/bin/i86/savecore
/usr/bin/i86/truss
/usr/include/devpoll.h
/usr/include/libdevinfo.h
/usr/include/nfs/lm_server.h
/usr/include/poll.h
/usr/include/sys/aio_impl.h
/usr/include/sys/callb.h
/usr/include/sys/callo.h
/usr/include/sys/cladm.h
/usr/include/sys/clconf.h
/usr/include/sys/cmn_err.h
/usr/include/config_admin.h
/usr/include/sys/console.h
/usr/include/sys/copyops.h
/usr/include/sys/core.h
/usr/include/sys/corectl.h
/usr/include/sys/cpuvar.h
/usr/include/sys/dc_ki.h
/usr/include/sys/ddi_impldefs.h
/usr/include/sys/ddi_implfuncs.h
/usr/include/sys/debug/debugger.h
/usr/include/sys/devinfo_impl.h
/usr/include/sys/devpoll.h
/usr/include/sys/door.h
/usr/include/sys/dumphdr.h
/usr/include/sys/fcntl.h
/usr/include/sys/fdbuffer.h
/usr/include/sys/flock.h
/usr/include/sys/flock_impl.h
/usr/include/sys/fs/pxfs_ki.h
/usr/include/sys/fs/snode.h
/usr/include/sys/fs/ufs_inode.h
/usr/include/sys/fs/ufs_mount.h
/usr/include/sys/ftrace.h
/usr/include/sys/gld.h
/usr/include/sys/gldpriv.h
/usr/include/sys/kmem.h
/usr/include/sys/kmem_impl.h
/usr/include/sys/kobj.h
/usr/include/sys/log.h
/usr/include/sys/mem_config.h
/usr/include/sys/mntent.h
/usr/include/sys/modctl.h
/usr/include/sys/mount.h
/usr/include/sys/param.h
/usr/include/sys/poll.h
/usr/include/sys/poll_impl.h
/usr/include/sys/proc.h
/usr/include/sys/promif.h
/usr/include/sys/rce.h
/usr/include/sys/reboot.h
/usr/include/sys/refstr.h
/usr/include/sys/refstr_impl.h
/usr/include/sys/scsi/scsi_ctl.h
/usr/include/sys/session.h
/usr/include/sys/share.h
/usr/include/sys/spl.h
/usr/include/sys/strlog.h
/usr/include/sys/strredir.h
/usr/include/sys/sunddi.h
/usr/include/sys/sunndi.h
/usr/include/sys/syscall.h
/usr/include/sys/systm.h
/usr/include/sys/taskq.h
/usr/include/sys/taskq_impl.h
/usr/include/sys/thread.h
/usr/include/sys/vfs.h
/usr/include/sys/vnode.h
/usr/kernel/drv/dump
/usr/kernel/drv/tnf
/usr/lib/adb/callout_table
/usr/lib/adb/dp_entry
/usr/lib/adb/fdbuffer
/usr/lib/adb/kmem_cache
/usr/lib/adb/lock_descriptor
/usr/lib/adb/msgbuf
/usr/lib/adb/msgtext
/usr/lib/adb/pollcache
/usr/lib/adb/polldat
/usr/lib/adb/pollstate
/usr/lib/adb/refstr
/usr/lib/adb/scsi_hba_tran
/usr/lib/adb/snode
/usr/lib/adb/task
/usr/lib/adb/taskq
/usr/lib/adb/tcp
/usr/lib/adb/thread
/usr/lib/class/TS/TSbigquanta
/usr/lib/cfgadm/scsi.so
/usr/lib/cfgadm/scsi.so.1
/usr/lib/fs/hsfs/mount
/usr/lib/fs/ufs/mount
/usr/lib/libc.a
/usr/lib/libc.so.1
/usr/lib/libcfgadm.so.1
/usr/lib/libdevinfo.so.1
/usr/lib/libkvm.so.1
/usr/lib/libp/libc.a
/usr/lib/pics/libc_pic.a
/usr/sbin/audlinks
/usr/sbin/cfgadm
/usr/sbin/clinfo
/usr/sbin/consadm
/usr/sbin/consadmd
/usr/sbin/devlinks
/usr/sbin/disks
/usr/sbin/dmesg
/usr/sbin/i86/crash
/usr/sbin/killall
/usr/sbin/mount
/usr/sbin/mountall
/usr/sbin/msgid
/usr/sbin/ports
/usr/sbin/strace
/usr/sbin/strerr
/usr/sbin/syslogd
/usr/sbin/tapes
/usr/lib/adb/msgbuf.wrap                (deleted file)
/usr/platform/i86pc/lib/adb/msgbuf      (deleted file)
/usr/sbin/i86/dmesg                     (deleted file)

Problem Description:

4242668 /usr/bin/coreadm cannot be localized because no setlocale is called
4240566 security: LC_MESSAGES buffer overflow
4238230 /kernel/sys/inst_sync not included in patch RTI P4168739 for FU releases
4236372 aio performance improvements
4233009 coreadm project
4226963 A Memory Leak of pthread program is due to schedctl doesn't free user address
4224086 syslogd dies when sent a SIGHUP
4223353 assumptions made in pollunlock() no longer valid with /dev/poll
4219071 kernel panics with segkp_fault: accessing redzone
4214611 hot kernel lock limiting scalability on Solaris 2.6+ or greater
4212925 NFS client unlink operation slow
4205009 system rebooted sfmmu_tsb_miss trap 31
4192195 ftime() does not update contents of struct timeb timezone and dstflag members
4190466 netpit caused poll() to assert
4185110 cfgadm extensions
4184786 config_admin(3X) extensions
4184788 cfgadm scsi hotplug plugin
4166495 libthread is not fork-safe wrt to system()

(from 106542-05)

4206401 panic when linking active stream below mux
4200121 moving values-xpg4.o from /usr/ccs/lib to /usr/lib opens security hole
4178455 recursive mutex_enter panic in TCP Streams device driver
4175299 automounted binary crashes on replicated F/S when an NFS server dies
4173696 getcwd() returns NULL over lofs
4120985 panic in free_page on multiprocessor machines with fix bug 4026411

(from 106542-04)

4214739 sulogin shoots itself when filesystem needs manual fsck
4212524 ftrace should stop tracing at panic
4212620 consadmd needs to get linked to consadm
4197418 severe Performance Degradation With Default Dispatch Table
4192420 SIGHUP handling of syslogd in Solaris 7 incorrect
4179342 Solaris needs to provide a resource management solution for big servers
4185742 kill fails to exit properly when killing dga process
4186155 PSARC/1998/173 - remote console
4104844 if remote connection on serial port is lost/disconnected, system console hangs
4143503 problem with 64 bit file pointers under 2.6
4197422 consadm doesn't open lock file correctly
4196994 consadm -p sometimes doesn't delete when carrier isn't present
4200972 ioctl interface can be simplified
4202082 x86: "cannot get table entries"
4200447 ttyname shows incorrect device name to auxiliary console user.
4190995 sulogin doesn't accept input from serial console
4196998 multiple calls to init s and 1 cause sulogin to not exit on console at init 3
4197140 sulogin ends up getting owned by init on auxiliary
4190962 setting serial console w/eeprom, consadmd behavior different for intel/sparc
4204046 bad trap during oracle database startup
4199606 need a scalable mechanism to poll large number of file descriptors
4199042 param_calc() can override certain /etc/system settings
4199032 need fast event tracing support
4198723 provide a trace mechanism for logging around TCP RSTs
4198134 RFE: Provide Sunfire CPU/MEM DR and Starfire DR in a Solaris 7 QU
4188212 gld: RFE: add support for Token Ring, FDDI, Diagnostic tracing
4174354 gld: DL_ENABLE_MULTI assumes maddr immediately follows dl_enabmulti_req_t
1264344 gld: token ring support changes needed (from lstr code review)
4186202 tnf_mod_load/unload need to be in tnf_res.c (genunix, not TNF driver)
4167270 SCSA should support devctl interfaces
4193375 provide lightweight kmem debugging option
4193378 provide logging for kmem allocation failures
4193379 provide logging for kmem slab creation (cache growth)
4193380 provide kmalog subcommand for crash(1M)
4193381 make kmem_flags settable in /etc/system
4193383 redzone violation in console_get_size()
4193657 swapadd fails on 2gb+ partitions with large specfs changes
4192056 memscrubber can cause long hangs (several minutes) during boot
4190566 hard hang on spin mutex in disp_swapped_enq()
4201921 lwp_create of ts thread causes NULL in suser
4200817 panic[cpu0]/thread=2a100255d60: Illegal lock transition from 6 to 6
4212634 cpu panic in 32-bit mode with Oracle, AP2.2 and Veritas3.0.1
4191544 System panic "blocked on mutex" in streams
4198942 solaris ntp_adjtime broken: clock.c; useless for PPS sync of the system clock
4178298 race condition in pr_getprot()
4196986 deadlock caused by fix for bug 4060416 in patch 103640-24
4217122 KMF_LITE changes break NCA

(from 106542-03)

4197461 provide ability to log all messages to panicbuf
4192639 ufs/dfratime: very frequent atime only updates can cause them not to be deferred
4176940 panic() when parsing driver.conf greater than 8KB
4155392 timezone change gives wrong alternate timezone
4136059 utc changes from 2.5.1 to 2.6 cause problems when including OS patches
4188005 mktime() can return wrong time if using multiple TZ's

(from 106542-02)

4193467 panic in door_info(DOOR_QUERY, ...)
4190138 last argument in ddi_create_minor_node prototype should be renamed
4190083 kernel should define SPL8
4190405 panic in rpcsec_gss, rpc_gss_free_pvt dereferences NULL pointer
4190796 nfs names are allocated as 255 bytes, freed as 256 bytes
4190807 softcall_lock should be at SPL8, not SPL7
4190812 log_freeq spin lock should be initialized to SPL8
4184015 door_info never returns DOOR_IS_UNREF when called from unref thread
4181570 Clustering modules have changed names & form; need to edit modstubs to match
4182043 ufs: extended ufs ops (ufs_alloc_data()) needs ufs logging transactions.
4182047 fdbuffer: The async handler should bp_mapout the async buffers
4179883 kmem code dealing with CPU removal broken when NCPU > 32
4182227 provide general-purpose asynchronous task scheduling
4182234 provide a better console output method than prom_printf()
4182240 replace kmem_async_dispatch() et al with a taskq
4182970 replace callout thread pool with a taskq
4184430 panic: recursive mutex_enter on kmem_cache_lock
4184852 kmem taskq should use a more modest 'minalloc'
4184877 missing mutex_enter() in task_alloc() error recovery
4185366 callout taskq should set minalloc == maxalloc
4177496 PSARC/1998/399: new system error message implementation
4175558 TZ=GMT0BST-1,M3.5.0/2:00,M10.5.0/2:00 breaks 6 times from now to 2037
4170410 rename is not atomic over nfs
4168739 Hooks for Sun Cluster 3.0
4152055 RFE: implement deferred access time option (dfratime)
4147402 Would like an interface to get from a phys. dev. path to a dev_info_t structure
4138467 need a way to get multiple unreferenced notifications on a door
4165983 new kernel interface for doors
4115711 adb can't handle long symbols
4115715 kadb input line length too small for C++

(from 106542-01)

4179407 extended fcntl(F_SHARE) file sharing has a 64 bit bug
4174167 volnotify is not working on Solaris 7
4170500 solaris ntp_adjtime broken, useless for PPS sync of the system clock
4139770 fcntl() returns EINVAL error in BCP mode when NFS file is read

(from 106977-01)

4174331 The system falls into panic while shutdown procedure is executed during writing

(from 106914-04)

4205612 rootnex: data corruption during Smash & Hammer; invalid s/g list

(from 106914-03)

4194509 rootnex: Primergy 870 with 4096 MB memory crashes upon boot

(from 106914-02)

4163335 mmu:x86: enable PAE by installing mmu36 module under /platform/i86pc/kernel/mmu
4170602 boot.bin initializes the property mmu-modlist to mmu36:mmu32  on a 4GB system.

(from 106914-01)

4122009 boot.bin: a20enable hangs with keyboard/monitor switch unless keys pressed at ba

(from 107440-01)

4203157 shmat causes corruption in the address space


Patch Installation Instructions:
--------------------------------
For Solaris 2.0-2.6 releases, refer to the Install.info file and/or
the README within the patch for instructions on using the generic
'installpatch' and 'backoutpatch' scripts provided with each patch.

For Solaris 7 release, refer to the man pages for instructions on
using 'patchadd' and 'patchrm' scripts provided with Solaris.
Any other special or non-generic installation instructions should be
described below as special instructions.  The following example
installs a patch to a standalone machine:

       example# patchadd /var/spool/patch/104945-02

The following example removes a patch from a standalone system:

       example# patchrm 104945-02

For additional examples please see the appropriate man pages.


Special Install Instructions: 
----------------------------- 
NOTE 1:	 This patch may contain one or more OEM-specific platform ports.
	 See the appropriate OEM_NOTES file within the patch for information
	 specific to these platforms.
		 
	 DO NOT INSTALL this patch on an OEM system if a corresponding
	 OEM_NOTES file is not present or states not to install, unless the
	 vendor directs otherwise.

NOTE 2:  If possible, perform patch installation in single user mode.  If this 
	 can not be done, we recommend having the system in as quiet a state
	 as possible: no users logged on, no user jobs running.

NOTE 3:  System Boot and Error Messages
         --------------------------------
	 This patch improves the system boot and error message format by 
	 providing a unique identifier, module name, and time stamp to messages 	 generated by the syslogd(1M) logging facility. In addition, messages 
	 that were previously lost after a system panic and reboot are now 
	 saved. 

	 A msgid(1M) command is provided for OEMs who want to generate message
	 catalogs that map message IDs to message text.  See msgid(1M) for 
	 details.

	 The new message format can be enabled or disabled by setting the msgid
	 property in the log.conf file; see log(7D) for details.  The new 
	 message format is not enabled by default.

	 New System Error Message Format

	 If msgid is set to 0 in the log.conf file, there are no changes in the
	 message format. If msgid is set to 1, there are two changes in the
	 message format:

         1. The text of the message is preceded by a message ID that looks 
	    like this:

            [ID <msgid> <facility>.<priority>]

            For example:

            [ID 123456 kern.notice]

            The <msgid> identifier is described in msgid(1M). The <facility> and
            <priority> tags are described in syslog.conf(4).

         2. If the message originated in the kernel, the kernel module name is
            displayed instead of just 'unix.'

            Previous message format:

            Oct  1 14:07:24 venus unix: alloc: /: file system full

            New message format:

            Oct  1 14:07:24 venus ufs: [ID 845546 kern.notice] alloc: /: file system full \
	    How to Enable or Disable System Message IDs
 
	    1. Become superuser.

            2. Enable or disable system message IDs by setting the msgid property
               in the file /platform/`uname -i`/kernel/drv/log.conf if it exists,
               or /kernel/drv/log.conf otherwise.

               a. To enable system message IDs, add this line:

               msgid=1;

               b. To disable system message IDs, add this line:

               msgid=0;

            3. Save and close the file.

            4. Reboot the system.

NOTE 4:  If you have a Net Install Image created by setup_install_server, please 
         apply this patch to the miniroot.  Refer to the patchadd manpage for
         the exact syntax.

NOTE 5:  To get the complete fix for 4201921, please also install the
         /kernel/sched/TS patch, 107463-01, or its newer version.  

NOTE 6:  To get the complete fix for 4240566 (security: LC_MESSAGES
         buffer overflow), we recommend installing the following
         patches:

         106794-03 (or newer)   ufsdump and ufsrestore patch
         107973-01 (or newer)   /usr/sbin/static/rcp patch

	PAE (Physical Address Extension)
        --------------------------------

        WARNING: It is possible that some device drivers may be written with
        assumptions about 4GB being the maximum amount of memory on an Intel
        Architecture system. Sun has tested the systems with PCI device
        drivers written by Sun. Sun's OEM partners intend to test their
        systems with devices that they supply on machines with more than
        4 GB of memory. However, if a third party device driver is added to
        the system by the end user, there is a danger that system will become
        unstable with potentials for PANICs and data corruption. If this
        device is needed, then the PAE support can be forcibly disabled
        as follows:

        Reboot the system.
        Interrupt autoboot by pressing ESC.
        When the Configuration Assistant provides the Boot menu,

           - Choose Boot Tasks (F4).
           - Choose View/Edit Property Settings.
           - Choose Create Properties (F4)
           - Specify Property name as mmu-modlist.
           - Specify Value as mmu32.
           - Go back to Boot Menu and continue booting normally.

Reboot the system after patch installation.
