Patch Name: PHKL_28566 Patch Description: s700_800 11.22 SCSI IO Subsystem Cumulative Patch Creation Date: 03/02/26 Post Date: 03/03/07 Hardware Platforms - OS Releases: s700: 11.22 s800: 11.22 Products: N/A Filesets: OS-Core.CORE2-KRN,fr=B.11.22,fa=HP-UX_B.11.22_IA,v=HP Automatic Reboot?: Yes Status: General Release Critical: Yes PHKL_28566: PANIC CORRUPTION HANG Category Tags: defect_repair general_release critical panic halts_system corruption manual_dependencies Path Name: /hp-ux_patches/s700_800/11.X/PHKL_28566 Symptoms: PHKL_28566: ( SR:8606288219 CR:JAGae52150 ) System panics with the following stack trace : bad_news+0x580 bubbledown+0x0 c8xx_isrAbortDone+0x590 c8xx_isrUDC+0x450 c8xx_isrDIP+0x4b0 c8xx_isr+0x5f0 sapic_interrupt+0x60 external_interrupt+0x250 bubbledown+0x0 idle+0x7b0 netcall_stub+0x0 idle+0x740ubbledown ( SR:8606265839 CR:JAGae30093 ) ioscan process hangs forever during system boot-up. ( SR:8606268016 CR:JAGae32255 ) Unkillable process seen on systems without I/O Translation Look-aside Buffers (TLBs). ( SR:8606266332 CR:JAGae30581 ) When two systems are connected in multi-initiator configuration using A6828A or A6829A Ultra160 SCSI cards, with I/O's happening on both systems, if one of the systems panic, it enters into an endless reboot loop. ( SR:8606224108 CR:JAGad93204 ) Unexpected SCSI bus resets are seen using A6828A and A6829A Ultra160 SCSI cards connected to two systems in multi-initiator configuration with the following message logged in syslog: "SCSI Gross Error on " ( SR:8606265090 CR:JAGae29421 ) The following informative message is logged in the syslog with A5150A and A5838A SCSI cards : SCSI 896 chip: Enabling DPR workaround in CCNTL ( SR:8606262931 CR:JAGae27261 ) System panics with a spinlock deadlock message and the following stack trace : panic+0x14 too_much_time+0x2e0 wait_for_lock+0x14c sl_retry+0x1c c8xx_if_tgt_open+0x50 sctl_open+0x1370 call_open_close+0x188 opend+0x128 spec_open+0xa8 vns_copen+0x4c vn_open+0xa8 copen+0xd0 open+0x3c syscall+0x200 $syscallrtn+0x0 ( SR:8606226043 CR:JAGad95114 ) Data integrity issues or High Priority Machine Check (HPMC) are seen with Channel B of A5159A FWD SCSI HBA. ( SR:8606266447 CR:JAGae30695 ) Processes appear to have hung forever following an abort request because of a bus hang condition. Defect Description: PHKL_28566: ( SR:8606288219 CR:JAGae52150 ) The system panicked with a Data TLB fault, because it was trying to dereference an invalid pointer. Resolution: Checks have been made in the driver so that invalid pointers are not dereferenced. ( SR:8606265839 CR:JAGae30093 ) The ioscan process hung because of a missing SCSI interrupt. The ioscan request and all subsequent I/O requests did not get processed because the timer routine did not clear a flag after it processed the previous interrupt. Resolution: The fix is to clear the flag in the timer routine. ( SR:8606268016 CR:JAGae32255 ) On systems without I/O TLBs, if the allocation of SCSI Control Block (SCB) fails during the first LUN open, then the process would remain sleeping without being woken up ever. This resulted in the process hanging forever. Resolution: The timer routine which gets called every 10 seconds is modified to wake up any process waiting for memory. ( SR:8606266332 CR:JAGae30581 ) The system was going into an endless reboot sequence because the initiator did not respond to the REQs sent by the target device. Resolution: The driver has been modified so that the initiator sends ACKs for the REQs received. ( SR:8606224108 CR:JAGad93204 ) When A6828A and A6829A SCSI Ultra160 cards are connected in multi-initiator configuration, where more than one initiator tries to arbitrate for the bus, the card may go into hang state which can result in not detecting the Dual Transition (DT) edge of the SCSI clock. The card goes into hang state because the device parameters were written into the card registers before winning the arbitration. This results in the SCSI Gross Error (SGE) and driver resets the SCSI bus. Resolution: The driver has been modified to not write the device parameters onto the card registers when the initiator tries to arbitrate for the bus. Only the device ID is written to the card registers to do the arbitration. The other parameters are set after winning the arbitration. ( SR:8606265090 CR:JAGae29421 ) The SCSI workaround message must be printed only when the logging level is increased. Resolution: The code has been modified to print the informative message in the syslog when the logging level is increased. ( SR:8606262931 CR:JAGae27261 ) A local variable inside a function got corrupted which caused the function to be executed in an infinite loop. The spinlock was held while entering the function and hence the system panicked with a spinlock deadlock because the lock was never released. Resolution: Code has been modified to prevent the variable from getting corrupted. ( SR:8606226043 CR:JAGad95114 ) In extremely rare conditions, single byte writes to onboard memory (SCRIPT RAM) may not complete on Channel B of A5159A FWD SCSI HBA. This may result in the following problems: a. Data integrity issues b. System crash due to HPMC. Resolution: The driver has been changed to perform word writes instead of byte writes. ( SR:8606266447 CR:JAGae30695 ) When an abort request times out, currently, the driver ignores the time-out. This could lead to process timeouts and the process appears to have hung forever. Resolution: The driver code has been changed to reset the SCSI bus if an abort request times out, to prevent aborts happening again and again. Enhancement: No SR: 8606224108 8606226043 8606262931 8606265090 8606265839 8606266332 8606266447 8606268016 8606288219 Patch Files: OS-Core.CORE2-KRN,fr=B.11.22,fa=HP-UX_B.11.22_IA,v=HP: /usr/conf/lib/libwsio-pdk.a(scsi_c8xx_pdk.o) /usr/conf/lib/libwsio.a(scsi_c8xx.o) /usr/conf/lib/libwsio.a(scsi_ctl.o) what(1) Output: OS-Core.CORE2-KRN,fr=B.11.22,fa=HP-UX_B.11.22_IA,v=HP: /usr/conf/lib/libwsio-pdk.a(scsi_c8xx_pdk.o): scsi_c8xx_pdk.c $Date: 2003/01/27 14:46:25 $Revision : r11.22/1 PATCH_11.22 (PHKL_28566) /usr/conf/lib/libwsio.a(scsi_c8xx.o): scsi_c8xx.c $Date: 2003/01/27 14:40:45 $Revision: r1 1.22/1 PATCH_11.22 (PHKL_28566) /usr/conf/lib/libwsio.a(scsi_ctl.o): scsi_ctl.c $Date: 2003/01/27 14:44:43 $Revision: r11 .22/1 PATCH_11.22 (PHKL_28566) cksum(1) Output: OS-Core.CORE2-KRN,fr=B.11.22,fa=HP-UX_B.11.22_IA,v=HP: 3958110997 42840 /usr/conf/lib/ libwsio-pdk.a(scsi_c8xx_pdk.o) 1558585923 384800 /usr/conf/lib/libwsio.a(scsi_c8xx.o) 459765678 387456 /usr/conf/lib/libwsio.a(scsi_ctl.o) Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: Multi-initiator support is available on Ultra160 SCSI cards with hardware revisions later than A6828-60001 and A6829-60001. Supersedes: None Equivalent Patches: None Patch Package Size: 820 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_28566 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHKL_28566.depot By default swinstall will archive the original software in /var/adm/sw/save/PHKL_28566. 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_28566.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHKL_28566.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHKL_28566.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None