Patch Name: PHKL_29011 Patch Description: s700_800 11.00 diag2 cumulative patch Creation Date: 03/06/03 Post Date: 03/06/11 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: No (superseded patches were critical) PHKL_28502: MEMORY_LEAK PHKL_26001: PANIC Category Tags: defect_repair hardware_enablement general_release critical panic memory_leak Path Name: /hp-ux_patches/s700_800/11.X/PHKL_29011 Symptoms: PHKL_29011: ( SR:8606306538 CR:JAGae69574 ) 32-bit applications running on 32-bit kernels and 64-bit applications running on 64-bit kernels will fail when executing firmware calls through the diag2 driver. PHKL_28502: ( SR:8606274554 CR:JAGae38631 ) Some of the STM tools and daemons may terminate unexpectedly, and the error message "equivalently mapped reserve pool is exhausted" will be logged into the /var/adm/syslog/syslog.log log file. PHKL_26001: ( SR:8606194997 CR:JAGad64203 ) System panics with a Data memory protection fault when an over-temperature condition is logged followed by an attempt to log an LPMC. Panic String: Trap Type 18 (Data memory protection fault): Stack trace: 0) panic+0x14 1) report_trap_or_int_and_panic+0x84 2) interrupt+0x1d4 3) $ihndlr_rtn+0x0 4) diag2_log+0x620 5) diag_log+0x20 6) log_lpmcs+0x78 7) lpmc_lumberjack+0x4c 8) invoke_callouts_for_self+0xc0 9) sw_service+0xb0 10) mp_ext_interrupt+0x150 11) ivti_patch_to_nop3+0x0 12) idle+0xaa8 13) swidle_exit+0x0 The panic stack trace can differ from the stack trace shown here. However, diag2_log will always be involved. PHKL_21420: ( SR:8606108263 CR:JAGab78658 ) When running the STM CPU information module, a similar message to the one below is logged into /etc/adm/syslog/syslog.log: mpc_bindlwp: Migrating process 3269 from processor 30 to processor 0! mpc_bindlwp: Overriding conflicting mandatory binding! Defect Description: PHKL_29011: ( SR:8606306538 CR:JAGae69574 ) The diag2 driver did not correctly copy the user parameters into its own internal parameters before executing the firmware call. Resolution: The diag2 driver was modified to correctly copy the user parameters into its own internal parameters. PHKL_28502: ( SR:8606274554 CR:JAGae38631 ) There are two situations when the diag2 driver will cause memory leaks. 1) When the same buffer is requested to be allocated more than once, only the first buffer is being freed. 2) If an error occurred while processing a request, the diag2 driver will return without freeing the allocated memory buffers. Resolution: Whenever the same buffer is requested more than once, diag2 will no longer allocate the buffers and will return an error. A check is included to ensure if an error is detected when processing a request, diag2 will release all buffers before returning. PHKL_26001: ( SR:8606194997 CR:JAGad64203 ) The OS requires that all reads and writes in kernel buffers be done at word aligned addresses. diag2 was not checking for address alignment when logging events into a kernel buffer. Instead, diag2 was relying on the lengths of the event log entries to maintain word alignment. All logging events, except over-temp, happen to be word aligned, so the subsequent event is logged to a word aligned address. Since the over-temp event is not word aligned, the next event logged (which in all reported panics has been an LPMC) would be written to the non word aligned address following the over-temp log entry. This causes a system panic. Although in all reported cases the panic occurred when an LPMC followed an over-temp log entry, the panic is not specific to the over-temp or the LPMC entries. If new non word aligned entries are created in the future, these too would enable this panic, and the next event to be logged would trigger it, and appear on the panic stack trace. Resolution: The diag2 code has been modified to write to and read from word-aligned addresses in the logging buffer. If an event log entry is not word aligned in length, diag2 will log the entry and compute the next word aligned address to write to. Similarly, reads will only happen at word aligned addresses. PHKL_21420: ( SR:8606108263 CR:JAGab78658 ) Diag2 has been MP safe, but the flag DRV_MP_SAFE was not being set to indicate so. Resolution: Added DRV_MP_SAFE flag to declare diag2 as mp-safe. Enhancement: No SR: 8606108263 8606194997 8606274554 8606306538 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(diag2.o) OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP: /usr/conf/lib/libhp-ux.a(diag2.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(diag2.o): diag2.c $Date: 2003/05/19 16:18:21 $Revision: r11ros /10 PATCH_11.00 (PHKL_29011) OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP: /usr/conf/lib/libhp-ux.a(diag2.o): diag2.c $Date: 2003/05/19 16:18:21 $Revision: r11ros /10 PATCH_11.00 (PHKL_29011) cksum(1) Output: OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP: 3660436660 15640 /usr/conf/lib/libhp-ux.a(diag2.o) OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP: 2472945054 39264 /usr/conf/lib/libhp-ux.a(diag2.o) Patch Conflicts: None Patch Dependencies: s700: 11.00: PHKL_18543 s800: 11.00: PHKL_18543 Hardware Dependencies: None Other Dependencies: None Supersedes: PHKL_28502 PHKL_26001 PHKL_21420 Equivalent Patches: None Patch Package Size: 50 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_29011 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHKL_29011.depot By default swinstall will archive the original software in /var/adm/sw/save/PHKL_29011. 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_29011.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHKL_29011.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHKL_29011.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None