Patch Name: PHKL_29818 Patch Description: s700_800 11.11 Cumulative DLKM module patch Creation Date: 03/10/07 Post Date: 03/10/21 Hardware Platforms - OS Releases: s700: 11.11 s800: 11.11 Products: N/A Filesets: OS-Core.CORE-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP 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_29818: HANG PHKL_22994: PANIC Category Tags: defect_repair enhancement general_release critical panic halts_system Path Name: /hp-ux_patches/s700_800/11.X/PHKL_29818 Symptoms: PHKL_29818: ( SR:8606320283 CR:JAGae82767 ) rmsf -H hangs if the driver associated with the h/w path is a DLKM module. PHKL_26425: ( SR:8606231066 CR:JAGae00304 ) Graphics driver cannot unload module from kernel. ( SR:8606246033 CR:JAGae12489 ) During module unload, because of incorrect locking of the module entry, the module state may change and the unload operation may not succeed. PHKL_22994: ( SR:8606162678 CR:JAGad31994 ) A DLKM load failure on automatic loading by open(2) can result in non-standard error codes being returned by open(2). ( SR:8606170779 CR:JAGad40043 ) The system will panic if the text and data size of a module hits a certain window. ( SR:8606154498 CR:JAGad23815 ) None. ( SR:8606137247 CR:JAGad06365 ) None ( SR:8606171142 CR:JAGad40406 ) If a customer were to use a load/stress script to repeatedly register, load, unload, and unregister a single module, AND if the customer were to run several copies of this script asynchronously, the customer might hit a window in which (for WSIO modules) the system panicked. Defect Description: PHKL_29818: ( SR:8606320283 CR:JAGae82767 ) DLKM Infrastructure does not set the correct flag in the device switch table entry for a dynamically loadable driver that uses dynamic major number. This causes rmsf to hang. Resolution: Set the correct flag in the switch table entry. PHKL_26425: ( SR:8606231066 CR:JAGae00304 ) The DLKM infrastructure does not provide an interface to unload a module to kernel internal functions. Resolution: Provided an unload interface to be used by kernel internal functions. ( SR:8606246033 CR:JAGae12489 ) Incorrect locking protection while checking the module state, in the unload path. Resolution: Fixed the locking bug in the unload path. PHKL_22994: ( SR:8606162678 CR:JAGad31994 ) DLKM load failure as part of automatic loading when open(2) is called results in possibly returning non-standard error return codes to open(2). Resolution: Print errors returned to automatic loading code by modld(), then mask the errors by returning ENODEV. ( SR:8606170779 CR:JAGad40043 ) If the text and data size of the module combine to be just slightly under an integral number of pages, AND the module has enough text to require a second long-branch stubs table, and the module has a zero-length PROGBITS section (such as millicode) before the .text section in the ELF image file, an (erroneous) additional second long-branch stubs table will be placed after the correct one, overflowing the allocated memory and causing a system panic when an address in the erroneous additional table is dereferenced. Resolution: Avoid performing actions for zero-length sections of the ELF image file. ( SR:8606154498 CR:JAGad23815 ) In the debug kernel, the assert treats 0 as an invalid major number. Resolution: Treat 0 as a valid major number. ( SR:8606137247 CR:JAGad06365 ) We don't test for a NULL return after a memory allocation with M_NOWAIT specified. Resolution: Check for NULL. This is largely a non-problem, since, if the allocation were to fail, we would have been in severe trouble long before reaching this point. ( SR:8606171142 CR:JAGad40406 ) There is a window in which it is possible to invalidate the drv_info_t structure while another process is using it. Resolution: Close the window by copying the drv_info_t information while the device switch table (and hence, the drv_info_t) is locked. Enhancement: No (superseded patches contained enhancements) PHKL_29818: Enhancements were delivered in a patch this one has superseded. Please review the Defect Description text for more information. SR: 8606137247 8606154498 8606162678 8606170779 8606171142 8606231066 8606246033 8606320283 Patch Files: OS-Core.CORE-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP: /usr/conf/sys/mod_k.h OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: /usr/conf/lib/libdlkm-pdk.a(mod_objmd.o) /usr/conf/lib/libdlkm.a(modadm.o) /usr/conf/lib/libdlkm.a(modctl.o) /usr/conf/lib/libdlkm.a(modinit.o) /usr/conf/lib/libio.a(gio_modfuncs.o) OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/lib/libdlkm-pdk.a(mod_objmd.o) /usr/conf/lib/libdlkm.a(modadm.o) /usr/conf/lib/libdlkm.a(modctl.o) /usr/conf/lib/libdlkm.a(modinit.o) /usr/conf/lib/libio.a(gio_modfuncs.o) what(1) Output: OS-Core.CORE-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP: /usr/conf/sys/mod_k.h: mod_k.h $Date: 2002/03/17 12:35:27 $Revision: r11.11 /2 PATCH_11.11 (PHKL_26425) */ OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: /usr/conf/lib/libdlkm-pdk.a(mod_objmd.o): mod_objmd.c $Date: 2000/12/19 04:53:55 $Revision: r1 1.11/1 PATCH_11.11 (PHKL_22994) /usr/conf/lib/libdlkm.a(modadm.o): modadm.c $Date: 2000/12/19 04:53:55 $Revision: r11.1 1/1 PATCH_11.11 (PHKL_22994) /usr/conf/lib/libdlkm.a(modctl.o): modctl.c $Date: 2002/03/17 12:32:42 $Revision: r11.1 1/3 PATCH_11.11 (PHKL_26425) /usr/conf/lib/libdlkm.a(modinit.o): modinit.c $Date: 2000/12/19 04:53:55 $Revision: r11. 11/1 PATCH_11.11 (PHKL_22994) /usr/conf/lib/libio.a(gio_modfuncs.o): gio_modfuncs.c $Date: 2003/09/28 10:32:54 $Revision: r11.11/2 PATCH_11.11 (PHKL_29818) OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/lib/libdlkm-pdk.a(mod_objmd.o): mod_objmd.c $Date: 2000/12/19 04:53:55 $Revision: r1 1.11/1 PATCH_11.11 (PHKL_22994) /usr/conf/lib/libdlkm.a(modadm.o): modadm.c $Date: 2000/12/19 04:53:55 $Revision: r11.1 1/1 PATCH_11.11 (PHKL_22994) /usr/conf/lib/libdlkm.a(modctl.o): modctl.c $Date: 2002/03/17 12:32:42 $Revision: r11.1 1/3 PATCH_11.11 (PHKL_26425) /usr/conf/lib/libdlkm.a(modinit.o): modinit.c $Date: 2000/12/19 04:53:55 $Revision: r11. 11/1 PATCH_11.11 (PHKL_22994) /usr/conf/lib/libio.a(gio_modfuncs.o): gio_modfuncs.c $Date: 2003/09/28 10:32:54 $Revision: r11.11/2 PATCH_11.11 (PHKL_29818) cksum(1) Output: OS-Core.CORE-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP: 3481709446 8664 /usr/conf/sys/mod_k.h OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: 2400505575 13908 /usr/conf/lib/libdlkm-pdk.a(mod_objmd.o) 3698964448 6256 /usr/conf/lib/libdlkm.a(modadm.o) 2621666971 17664 /usr/conf/lib/libdlkm.a(modctl.o) 1088591096 5508 /usr/conf/lib/libdlkm.a(modinit.o) 85055806 10744 /usr/conf/lib/libio.a(gio_modfuncs.o) OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: 847140765 30240 /usr/conf/lib/libdlkm-pdk.a(mod_objmd.o) 2619584738 14672 /usr/conf/lib/libdlkm.a(modadm.o) 181049780 40736 /usr/conf/lib/libdlkm.a(modctl.o) 1167305104 11848 /usr/conf/lib/libdlkm.a(modinit.o) 1843119575 27264 /usr/conf/lib/libio.a(gio_modfuncs.o) Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHKL_22994 PHKL_26425 Equivalent Patches: None Patch Package Size: 110 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_29818 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHKL_29818.depot By default swinstall will archive the original software in /var/adm/sw/save/PHKL_29818. 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_29818.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHKL_29818.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHKL_29818.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None