Patch Name: PHKL_20202

Patch Description: s700_800 11.00 Fix pthread error return, nfs/tcp panic

Creation Date: 00/02/10

Post Date: 00/02/16

Hardware Platforms - OS Releases:
	s700: 11.00
	s800: 11.00

Products: N/A

Filesets:
	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP
	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP

Automatic Reboot?: Yes

Status: General Release

Critical:
	Yes
	PHKL_20202: PANIC
		This patch must be applied for nfs/tcp to function.

Category Tags:
	defect_repair enhancement general_release critical panic

Path Name: /hp-ux_patches/s700_800/11.X/PHKL_20202

Symptoms:
	PHKL_20202:
	( SR: 8616128857 CR: JAGab14278 )
	System panics while using nfs/tcp, ksleep_one() appears
	in the panic stack trace.

	PHKL_14750:
	The previous patch has been recut to include compile-based
	performance tuning.  There is no functional change in this
	patch.

	PHKL_14493:
	pthread_cond_timedwait(3T) intermittently returns EINVAL
	though the arguments are all valid.

Defect Description:
	PHKL_20202:
	( SR: 8616128857 CR: JAGab14278 )
	Calling the kwakup_one() function from ICS panics the
	system. The immediate problem is that chanq_setkey()
	dereferences the uarea to get at the vas via the proc
	structure.

	Resolution:
	By rearranging the code so the vas pointer is not
	initialized until after the KERNEL_ADDRESS-specific
	code is executed, we'll avoid dereferencing the uarea
	on the ICS.

	PHKL_14750:
	None

	PHKL_14493:
	Under normal circumstances, if the third argument
	"struct timespec *abstime" to pthread_cond_timedwait()
	contains the time it has already passed, it will return
	error ETIMEDOUT.  However, pthread_cond_timedwait(3T)
	intermittently returns EINVAL instead.  This happens in the
	following scenario:

	-  pthread_cond_timedwait() gets called with a future time.
	-  pthread_cond_timedwait() calls ksleep()
	-  ksleep() calls ksleep_one()
	-  ksleep() calls chang_timeout()
	   If by the time we call chang_timeout(), the time value is
	   already in the past, chang_timeout() returns EINVAL. This
	   return value is propagated and eventually returned by
	   pthread_cond_timedwait().

	The fix was  to make sure that this scenario now returns
	ETIMEDOUT instead.

SR:
	1653253237 8616128857

Patch Files:
	
	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP:
	/usr/conf/lib/libhp-ux.a(subr_ksleep.o)

	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP:
	/usr/conf/lib/libhp-ux.a(subr_ksleep.o)

what(1) Output:
	
	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP:
	/usr/conf/lib/libhp-ux.a(subr_ksleep.o):
		subr_ksleep.c $Date: 2000/01/27 16:06:09 $Revision: 
			r11ros/3 PATCH_11.00 (PHKL_20202)

	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP:
	/usr/conf/lib/libhp-ux.a(subr_ksleep.o):
		subr_ksleep.c $Date: 2000/01/27 16:06:09 $Revision: 
			r11ros/3 PATCH_11.00 (PHKL_20202)

cksum(1) Output:
	
	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP:
	431265183 12192 /usr/conf/lib/libhp-ux.a(subr_ksleep.o)

	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP:
	2867549106 29776 /usr/conf/lib/libhp-ux.a(subr_ksleep.o)

Patch Conflicts: None

Patch Dependencies: None

Hardware Dependencies: None

Other Dependencies: None

Supersedes:
	PHKL_14750 PHKL_14493

Equivalent Patches: None

Patch Package Size: 70 KBytes

Installation Instructions:
	Please review all instructions and the Hewlett-Packard
	SupportLine User Guide or your Hewlett-Packard support terms
	and conditions for precautions, scope of license,
	restrictions, and, limitation of liability and warranties,
	before installing this patch.
	------------------------------------------------------------
	1. Back up your system before installing a patch.

	2. Login as root.

	3. Copy the patch to the /tmp directory.

	4. Move to the /tmp directory and unshar the patch:

		cd /tmp
		sh PHKL_20202

	5. Run swinstall to install the patch:

		swinstall -x autoreboot=true -x patch_match_target=true \
			  -s /tmp/PHKL_20202.depot

	By default swinstall will archive the original software in 
	/var/adm/sw/save/PHKL_20202.  If you do not wish to retain a
	copy of the original software, use the patch_save_files option:

		swinstall -x autoreboot=true -x patch_match_target=true \
			  -x patch_save_files=false -s /tmp/PHKL_20202.depot

	WARNING: If patch_save_files is false when a patch is installed,
		 the patch cannot be deinstalled.  Please be careful
		 when using this feature.

	For future reference, the contents of the PHKL_20202.text file is 
	available in the product readme:

		swlist -l product -a readme -d @ /tmp/PHKL_20202.depot

	To put this patch on a magnetic tape and install from the
	tape drive, use the command:

		dd if=/tmp/PHKL_20202.depot of=/dev/rmt/0m bs=2k

Special Installation Instructions: None

