Patch Name: PHKL_28489 Patch Description: s700_800 11.11 copyin EFAULT, LDCD access type Creation Date: 03/01/16 Post Date: 03/01/28 Hardware Platforms - OS Releases: s700: 11.11 s800: 11.11 Products: N/A Filesets: OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP Automatic Reboot?: Yes Status: General Release Critical: Yes PHKL_28489: HANG PHKL_23995: OTHER Under some race conditions the system returns a bad address on a write operation on a valid address. Category Tags: defect_repair general_release critical halts_system Path Name: /hp-ux_patches/s700_800/11.X/PHKL_28489 Symptoms: PHKL_28489: ( SR:8606281908 CR:JAGae45851 ) A 64bit application calling fork() may experience an interruptible hang. PHKL_23995: ( SR:8606173564 CR:JAGad42822 ) The system may return a Bad Address (EFAULT) on a legal write() Defect Description: PHKL_28489: ( SR:8606281908 CR:JAGae45851 ) If the first access to a copy on write page after a fork() is an LDCD (load and clear double) instruction, when resolving the protection (access) fault, the access type is incorrectly determined to be a READ instead of a WRITE, thus resulting in a recursive protection fault and interruptible process hang. Resolution: Updated the access type checking routines to correctly return WRITE for LDCD instructions. PHKL_23995: ( SR:8606173564 CR:JAGad42822 ) The system checks the access rights for the page twice before copying a page in memory. The second check is done if the page was not already in memory and was brought in by a fault. This second check can fail under a race condition. Resolution: The solution is not to check the access rights again if the fault is resolved - resolving the fault ensures that the page is in memory with proper access rights. Enhancement: No SR: 8606173564 8606281908 Patch Files: OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: /usr/conf/lib/libvm-pdk.a(vm_mapcall.o) OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/lib/libvm-pdk.a(vm_mapcall.o) what(1) Output: OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: /usr/conf/lib/libvm-pdk.a(vm_mapcall.o): vm_mapcall.c $Date: 2003/01/06 08:19:25 $Revision: r 11.11/3 PATCH_11.11 (PHKL_28489) OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/lib/libvm-pdk.a(vm_mapcall.o): vm_mapcall.c $Date: 2003/01/06 08:19:25 $Revision: r 11.11/3 PATCH_11.11 (PHKL_28489) cksum(1) Output: OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: 2846780948 9080 /usr/conf/lib/libvm-pdk.a(vm_mapcall.o) OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: 1295375596 24848 /usr/conf/lib/libvm-pdk.a(vm_mapcall.o) Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHKL_23995 Equivalent Patches: None Patch Package Size: 60 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_28489 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHKL_28489.depot By default swinstall will archive the original software in /var/adm/sw/save/PHKL_28489. If you do not wish to retain a copy of the original software, include the patch_save_files option in the swinstall command above: -x patch_save_files=false 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_28489.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHKL_28489.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHKL_28489.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None