Patch Name: PHKL_23957 Patch Description: s700_800 11.11 Boot panic (w/Fiber Ch. & Gig. Ethernet) fix Creation Date: 01/04/23 Post Date: 01/04/26 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_23957: PANIC Category Tags: defect_repair general_release critical panic Path Name: /hp-ux_patches/s700_800/11.X/PHKL_23957 Symptoms: PHKL_23957: ( SR:8606188166 CR:JAGad57374 ) A panic (because of a Data Page Fault) occurs on boot, with the function "reserve_io_alias_entries()" in the backtrace. This is known to happen when a Fiber Channel A5158A card and Gigabit (ST & TX) card are installed in the system. There is a chance that this panic will happen with other combinations of cards. An example stack trace is: panic+0x6c report_trap_or_int_and_panic+0x94 trap+0xed4 nokgdb+0x8 reserve_io_alias_entries+0xac <-- io_map_regs+0x9c pa_map_iface_regs+0x9c elroy_map_iface_regs+0x40 td_map_membase_srombase+0x164 td_claim+0x1d4 fcms_claim+0x3c pci_cdio_config+0xb0 gio_scan_subtree+0xe8 gio_scan_subtree_real+0x184 gio_scan_subtree+0x84 gio_scan_subtree_real+0x184 gio_scan_subtree+0x84 gio_scan_subtree_real+0x184 gio_scan_subtree+0x84 io_scan+0x26c io_virt_mode_config+0x90 DoCalllist+0x3c main+0x28 $vstart+0x48 istackatbase+0x84 Defect Description: PHKL_23957: ( SR:8606188166 CR:JAGad57374 ) Because the kernel, 64-bit user processes, and 32-bit user processes all need to access IO pages, we need to have the capability of mapping multiple virtual addresses to the same physical IO page. The infrastructure to handle this uses an "io alias" structure to keep track of these aliases. These structures are linked on two lists, a "free" list and a "reserve" list. The paradigm is that io aliases are first reserved, and then used. The defect was in the way we handled the entries on the free list - we have the list, and we have an integer that contains the length of the list. These two values were not kept consistent, resulting in the list manipulation code walking off the end of the free list. This defect hasn't been seen before because it took a certain pattern of requests for IO aliases to properly tickle the defect. Resolution: The solution was simple - fix the place were the length of the free list becomes inconsistent with the integer representing the length of that free list. SR: 8606188166 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_pdir2_0.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_pdir2_0.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_pdir2_0.o): vm_pdir2_0.c $Date: 2001/04/18 11:40:19 $Revision: r 11.11/1 PATCH_11.11 (PHKL_23957) OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/lib/libvm-pdk.a(vm_pdir2_0.o): vm_pdir2_0.c $Date: 2001/04/18 11:40:19 $Revision: r 11.11/1 PATCH_11.11 (PHKL_23957) cksum(1) Output: OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: 4125009711 59552 /usr/conf/lib/libvm-pdk.a(vm_pdir2_0.o) OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: 150515559 158096 /usr/conf/lib/libvm-pdk.a(vm_pdir2_0.o) Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: None Equivalent Patches: None Patch Package Size: 240 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_23957 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHKL_23957.depot By default swinstall will archive the original software in /var/adm/sw/save/PHKL_23957. 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_23957.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHKL_23957.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHKL_23957.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None