Patch Name: PHKL_30511 Patch Description: s700_800 11.11 SCSI Ultra160 Cumulative Patch Creation Date: 04/05/24 Post Date: 04/06/07 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 OS-Core.KERN2-RUN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP Automatic Reboot?: Yes Status: General Release Critical: Yes PHKL_30511: CORRUPTION JAGaf07173: incorrect byte count returned when odd number of bytes are read. PHKL_29685: PANIC CORRUPTION HANG PHKL_29035: PANIC HANG PHKL_27556: PANIC CORRUPTION HANG PHKL_27025: OTHER PANIC HANG Failure to boot after PHKL_25712 is removed. rp7410 server may HPMC on core LAN/SCSI card A6794A System panics when defective device generates hundreds of SCSI bus resets per second. System panics with data page fault. Process hangs after kernel reports an error while handling a "Contingence Allegience" condition. PHKL_25712: PANIC HANG Category Tags: defect_repair hardware_enablement enhancement general_release critical panic halts_system corruption manual_dependencies Path Name: /hp-ux_patches/s700_800/11.X/PHKL_30511 Symptoms: PHKL_30511: ( SR:8606346346 CR:JAGaf07173 ) When odd number of bytes are transferred by a SCSI device connected to an Ultra160 card (A6828A/A6829A), the number of bytes transferred is reported incorrectly by the Ultra160 driver. This could result in loss of data integrity. ( SR:8606351535 CR:JAGaf12340 ) open(2) on the device special file corresponding to the SCSI initiator id of the card fails. PHKL_29685: ( SR:8606286153 CR:JAGae50096 ) While booting up, if a DAT tape drive is connected to a SCSI Ultra160 card (A6828A/A6829A), the system panics with the following stack trace : panic+0xa0 report_trap_or_int_and_panic+0x94 interrupt+0x4e4 set_protid_registers+0xa3c scsi_cbfn+0x76c scsi_fast_cbfn+0x284 c8xx_basicdv_inq2_cbfn+0x268 c8xx_call_cbfns+0xd0 c8xx_isr+0xc40 sapic_interrupt+0x34 up_ext_interrupt+0x24c set_protid_registers+0x9d8 idle_nonpset_loop+0x3c8 idle+0x820 getproc_info+0x30 ( SR:8606295528 CR:JAGae59213 ) The following message appears in syslog.log file when the SCSI Ultra160 driver performs negotiation during domain validation with non-Ultra160 speed device, such as Fujitsu disk(MAJ3182MC) using Parallel Protocol Request(PPR) message: "SCSI: Unhandled Message Reject". ( SR:8606296155 CR:JAGae59766 ) 1) When using the STM tool, and downloading the firmware to the controller of a StorageWorks Disk System 2300 using SCSI Ultra160 card (A6828A/A6829A), the operation fails and the following message is logged in the syslog.log file: "Scripts detected non Active Tag". This failure is followed by a SCSI bus reset. 2) When SCSI Ultra160 card (A6828A/A6829A) is connected to untagged devices, there is a possibility of data integrity issue. ( SR:8606311657 CR:JAGae74484 ) System panics with the following stack trace while doing repeated OLR operations, panic+0x6c report_trap_or_int_and_panic+0x94 interrupt+0x208 $ihndlr_rtn+0x0 c8xx_timer+0x5c invoke_callouts_for_self+0x9c sw_service+0x108 mp_ext_interrupt+0x180 ivti_patch_to_nop3+0x0 idle+0x44c swidle_exit+0x0 ( SR:8606316072 CR:JAGae78789 ) System hangs while doing repeated OLR operations. PHKL_29035: ( SR:8606297198 CR:JAGae60712 ) System may panic with an alignment fault and the following stack trace when connected to a narrow device: panic+0x6c report_trap_or_int_and_panic+0x94 interrupt+0x208 $ihndlr_rtn+0x0 c8xx_isrMA+0x3cc c8xx_isrSIP+0x158 c8xx_isr+0x334 sapic_interrupt+0x2c mp_ext_interrupt+0x26c ivti_patch_to_nop3+0x0 idle_nonpset_loop+0x704 idle+0x7ac swidle_exit+0x0 ( SR:8606284648 CR:JAGae48593 ) A system with SAF-TE device hung during boot-up when it encountered this device while scanning the SCSI bus. ( SR:8606298628 CR:JAGae62127 ) a) The message "First party detected bus hang (HTH)" is seen in the syslog. This also results in SCSI bus reset. b) System panics with the following stack trace : panic+0xa0 kmem_arena_panic+0xc8 kmem_chk_poison+0x12c kfree+0x138 io_mem_free+0x3c ike_psm_free_shared_mem+0x90 compat10_dma_free+0x2c dma_cleanup+0xb8 c8xx_DataCleanup#HLO_CL_#i3_0x400+0x124 c8xx_done#HLO_CL_#i3_0x400+0x110 c8xx_isrRST+0x3cc c8xx_isrSIP+0x25c c8xx_isr+0x308 sapic_interrupt+0x34 up_ext_interrupt+0x224 ivti_patch_to_nop2+0x0 idle+0x6d0 swidle_exit+0x0 ( SR:8606305637 CR:JAGae68685 ) System with an Ultra160 card and the SAF-TE device panics on boot-up with the following stack trace : panic+0x6c gio_scan_watchdog+0x100 invoke_callouts_for_self+0x9c sw_service+0x100 up_ext_interrupt+0x160 ivti_patch_to_nop2+0x0 idle+0x22c swidle_exit+0x0 ( SR:8606292714 CR:JAGae56466 ) Continuous SCSI bus resets are seen when a single ended CD-ROM drive is connected to a system with an Ultra160 card. PHKL_27556: ( SR:8606255146 CR:JAGae19473 ) System panics with the following stack trace : panic+0x6c assfail+0x3c c8xx_timer+0x804 invoke_callouts_for_self+0x230 sw_service+0x120 mp_ext_interrupt+0x408 ivti_patch_to_nop3+0x0 cc_spinunlock+0x48 spinunlock+0x6c b_psema+0x1c8 local_lockf+0x4c vx_lockf+0xac lockf+0x1b8 syscall+0x808 $syscallrtn+0x0 ( SR:8606267745 CR:JAGae31985 ) System panics with a Data Page Fault with the following stack trace : panic+0x6c report_trap_or_int_and_panic+0x94 interrupt+0x208 $ihndlr_rtn+0x0 c8xx_isrSTO+0x28 c8xx_isrSIP+0x1b4 c8xx_isr+0x36c sapic_interrupt+0x2c mp_ext_interrupt+0x3f0 ivti_patch_to_nop3+0x0 gelan_if_resolved_output+0x580 hp_dlpi_wput+0xfc putnext+0xf0 putnext_return_one+0x10 ip_wput_ire+0xd84 ip_wput+0xe8 putnext+0xf0 tcp_wput_proto+0x390 tcp_wput+0x170 putnext+0xf0 tcp_wput_proto+0x390 tcp_wput+0x170 putnext+0xf0 streams_putmsg2+0x470 t_ksndrel+0x778 soclose+0xe18 soo_close+0x90 closef+0x64 close+0x104 syscall+0x7d4 $syscallrtn+0x0 ( SR:8606251412 CR:JAGae17477 ) System panics with the following stack trace : assfail+0x50 c8xx_start+0x690 c8xx_timer+0x1380 invoke_callouts_for_self+0x340 soft_intr_handler+0x100 external_interrupt+0x490 bubbledown ( SR:8606260652 CR:JAGae24975 ) System panics with the following stack trace : panic+0x6c assfail+0x3c c8xx_start+0x7cc c8xx_timer+0x300 invoke_callouts_for_self+0x230 sw_service+0x120 mp_ext_interrupt+0x408 ivti_patch_to_nop3+0x0 cc_spinunlock+0x48 spinunlock+0x6c semop+0x524 syscall+0x834 $syscallrtn+0x0 ( 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:8606260893 CR:JAGae25215 ) diskinfo(1M) reports zero disk capacity on Ultra320 IBM disk drives connected to the Ultra160 HBA. ( SR:8606265839 CR:JAGae30093 ) ioscan(1M) hangs forever during system boot-up. ( SR:8606286566 CR:JAGae50505 ) Data integrity problem is seen during I/O with A6828A and A6829A Ultra160 SCSI cards under heavy traffic conditions. ( 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: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: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:8606267106 CR:JAGae31349 ) The postinstall script is not compatible with the current scripts architecture. ( SR:8606229159 CR:JAGad98212 ) System panics with the following stack trace : panic+0x6c report_trap_or_int_and_panic+0x94 interrupt+0x208 $ihndlr_rtn+0x0 c8xx_timer+0x5c invoke_callouts_for_self+0x9c sw_service+0x108 mp_ext_interrupt+0x170 ivti_patch_to_nop3+0x0 idle+0x5b4 swidle_exit+0x0 ( SR:8606266776 CR:JAGae31021 ) Handshake-to-Handshake (HTH) time-out errors were seen during system boot-up. ( SR:8606255080 CR:JAGae19409 ) System panics with the following stack trace : assfail+0x50 c8xx_if_start+0x1a0 scsi_start_bus_locked+0xfb0 scsi_start+0x110 scsi_strategy_real+0xcc0 ioforw_int+0x130 soft_intr_handler+0x100 external_interrupt+0x490 bubbledown $DEBUG_ABBREV_CE0002_zzlast_debug_c $DEBUG_PROCS_ABBREV_CE0002_domainname_c+0x2d7e9f8ff28da05 ( SR:8606266447 CR:JAGae30695 ) Processes appear to have hung forever following an abort request because of a SCSI bus hang condition. ( SR:8606259152 CR:JAGae23470 ) When SCSI bus reset is in progress for an Ultra160 card and the card is suspended before the bus reset is complete, the I/O requests will hang even after the resume operation is successfully completed. ( SR:8606270242 CR:JAGae34480 ) System panics with the following stack trace : stack trace for event 0 crash event was a panic panic+0x6c report_trap_or_int_and_panic+0x94 interrupt+0x208 $ihndlr_rtn+0x0 c8xx_timer+0x5c invoke_callouts_for_self+0x9c sw_service+0x100 mp_ext_interrupt+0x14c ivti_patch_to_nop3+0x0 idle+0x1d4 swidle_exit+0x0 ( SR:8606277603 CR:JAGae41674 ) System panics with the following stack trace when suspend and resume operation is done e.g, during OLAR operation. stack trace for event 0 crash event was a panic panic+0x6c report_trap_or_int_and_panic+0x94 interrupt+0x208 $ihndlr_rtn+0x0 c8xx_hw_suspend3+0x348 invoke_callouts_for_self+0x98 sw_service+0x108 mp_ext_interrupt+0x3f0 ivti_patch_to_nop3+0x0 idle+0x6d0 swidle_exit+0x0 PHKL_27025: ( SR:8606260875 CR:JAGae25197 ) Process hangs and is non-interruptible with the following message in the system log file: Set up error during Contingent Allegiance ( SR:8606238121 CR:JAGae07162 ) Under heavy load on the SCSI bus, 64 Abort messages may be logged in the system log file over a short period of time (10-15 seconds). Abort messages look like the following: SCSI: Request Timeout; Abort Tag -- lbolt: 667772, dev: bc02a000, io_id: 26bfda9 ( SR:8606234217 CR:JAGae03437 ) System panics due to a "Data page fault" with the following stack trace: panic+0x6c report_trap_or_int_and_panic+0x94 interrupt+0x208 $ihndlr_rtn+0x0 scsi_lookup_bp+0x38 scsi_dequeue_bp+0x18 100_2c82_cl_c8xx_done+0xa4 c8xx_isrRST+0x328 c8xx_isrSIP+0x2b0 c8xx_isr+0x334 sapic_interrupt+0x2c ( SR:8606259982 CR:JAGae24301 ) The c8xx driver is not linked into the kernel after removal of PHKL_25712, even if PHKL_25020 is still installed on the system. This prevents reboot of systems where c8xx is the boot driver. ( SR:8606261268 CR:JAGae25590 ) rp7410 server experiences High Priority Machine Check (HPMC) on the core LAN/SCSI card A6794A. Once decoded, the PIM information - that can be collected at the Boot Console Handler (BCH) prompt - contains the following footprint: Problem: (0)RIO Rope I/F FE: Command/Data FIFO (CDF) timeout - Rope I/F 1 (LBA slot 1) CDF is backed up. ( SR:8606252783 CR:JAGae17850 ) When the c8xx driver detects a problem with a device, it steps down the transfer rate to a sustainable rate. But the driver fails to step the transfer rate back up to Ultra160 after the problem that caused the step down is fixed. A message like the following is logged in the system log file at step down time: SCSI: Ultra160 Controller at 0/6/2/0: Warning: Data transfer rate stepped down for target 3. Now operating at 5 MB/s (Slow Narrow). Possible causes are improper termination, improper cabling, or malfunctioning hardware. ( SR:8606233087 CR:JAGae02311 ) System panics due to "callout table overflow" with the following stack trace when continuous SCSI bus resets are detected by the driver: panic+0x14 settimeout_for_cpu+0x174 Ktimeout+0x3c c8xx_reset_chip+0x129c c8xx_isrRST+0x94 c8xx_isr+0x15cc sapic_interrupt+0x2c ( SR:8606237636 CR:JAGae06674 ) Process hangs and is non-interruptible with the following message in the system log file: Device violation of Contingent Allegiance PHKL_25712: ( SR:8606226157 CR:JAGad95228 ) Enhancement to add support for Online Addition/Replacement to the c8xx SCSI Ultra160 driver. ( SR:8606224449 CR:JAGad93537 ) System panics when target reset and SCSI bus resets are issued simultaneously through the SCSI Ultra160 driver. The stack trace looks as follows: panic+0x6c report_trap_or_int_and_panic+0x94 interrupt+0x208 $ihndlr_rtn+0x0 c8xx_enqueue_bdr+0x24 invoke_callouts_for_self+0x9c sw_service+0x100 mp_ext_interrupt+0x1f0 ivti_patch_to_nop3+0x0 idle+0x1f0 swidle_exit+0x0 ( SR:8606221001 CR:JAGad90137 ) The ioctl's SIOC_SET_TGT_LIMITS and SIOC_SET_BUS_LIMITS have no effect on the negotiation of data transfer parameters used by SCSI Ultra160 driver. ( SR:8606227985 CR:JAGad97043 ) Simultaneous SCSI target resets may result in a process hang or system panic while using SCSI Ultra160 driver. The stack trace looks as follows: panic+0x6c report_trap_or_int_and_panic+0x94 interrupt+0x208 $ihndlr_rtn+0x0 c8xx_reset_bus_now+0x2c invoke_callouts_for_self+0x9c sw_service+0x100 mp_ext_interrupt+0x1ec ivti_patch_to_nop3+0x0 idle+0x244 swidle_exit+0x0 PHKL_25020: ( SR:8606213503 CR:JAGad82695 ) Enhancement to add support for SCSI Ultra160 core I/O and add-in bus adapters. This patch is required in order to use these cards. Defect Description: PHKL_30511: ( SR:8606346346 CR:JAGaf07173 ) When the number of bytes transferred by the device is odd and an ignore wide residue message is sent by the target at the completion of the I/O, the driver does not update the data residual count. This results in improper byte transfers. Resolution: The driver code has been modified to update the residual count when an ignore wide residue message is sent by a target at the end of an odd byte I/O transfer. ( SR:8606351535 CR:JAGaf12340 ) The management processor on MSA30 disk enclosure does not have a dedicated SCSI target id. It responds to the SCSI id of the initiator. In order to communicate with the management processor, open(2) on the device special file corresponding to the SCSI initiator id should be allowed. Resolution: Changed the code to allow open(2) on the device special file corresponding to the SCSI initiator id. PHKL_29685: ( SR:8606286153 CR:JAGae50096 ) When a domain validation I/O request completes with an error condition, the original I/O request is returned to the upper layer, but the sense buffer for the original I/O request is not populated. This causes the system to panic with a data page fault when this invalid pointer is referenced. Resolution: The driver code has been modified to correctly populate the sense buffer of the original I/O request. ( SR:8606295528 CR:JAGae59213 ) During domain validation, the driver sends a PPR request to the target device. Although the target device responds with a valid PPR response, the Ultra160 driver incorrectly rejects the response and logs an error message in syslog.log file. Resolution: The driver code has been modified to handle the valid PPR response correctly. ( SR:8606296155 CR:JAGae59766 ) When the number of bytes transferred is greater than 2K, the driver does not update the nexus during reselection. This results in firmware download failure or possible data integrity issue. Resolution: The driver code has been modified to update the nexus during untagged reselection. ( SR:8606311657 CR:JAGae74484 ) The system panics because a timer is not getting cancelled during the last SCSI bus close. This results in dereferencing a null pointer in the timer routine. Resolution: The driver code has been modified to cancel the timer during the last SCSI bus close. ( SR:8606316072 CR:JAGae78789 ) The system hangs because the driver does not start the chip during an OLR operation. Resolution: The driver code has been modified to start the chip during OLR operations. PHKL_29035: ( SR:8606297198 CR:JAGae60712 ) When the driver finds that the target device is going to the Data Phase erroneously, it transfers two bytes at a time and tries to get the device to an expected phase before aborting the command. Since narrow devices transfer only one byte at a time, there is a possibility that the target device may change phase after transferring one byte resulting in phase mismatch. The phase mismatch handler in the driver adjusts the data address by one which results in an odd byte aligned address. Later, when this address was accessed, the system panicked with an alignment fault. Resolution: The driver code has been modified to transfer one byte at a time for narrow target devices and two bytes for wide target devices. ( SR:8606284648 CR:JAGae48593 ) The SAF-TE device which is the target device, transitioned to the command phase after receiving the identify message from the driver. The driver did not treat this as a valid phase transition, instead, it expected the target to continue in MSGOUT phase. But the target device ignored the ATN signal and still remained in command phase. This resulted in system hang. Resolution: The driver code has been modified to handle the command phase transition. ( SR:8606298628 CR:JAGae62127 ) a) If the WDTR message is rejected by the target device, the driver failed to send a SDTR message because it assumed that the target was already in asynchronous narrow mode. This resulted in mismatch in negotiated parameters between the initiator and the target, thereby causing the HTH timer to timeout during data transfer and the HTH message was displayed in the syslog. On detecting the HTH timer expiry, the SCSI bus was reset by the driver. b) When displaying the HTH message, one of the chip registers was incorrectly accessed. This caused the system to panic. Resolution: a) The driver code has been modified to send an SDTR message irrespective of whether the driver is already in the asynchronous narrow mode or not. b) The driver code has been modified not to access the chip register when dumping the HTH message. ( SR:8606305637 CR:JAGae68685 ) During system boot-up, the system probes for devices attached to the PCI bus. During this time, if domain validation was in progress and the period and speed were stepped down to asynchronous narrow mode and a SCSI bus reset occurred, then domain validation occurred in an endless loop. This caused probe timeout and system panic. Resolution: The driver code has been modified to prevent the domain validation from happening in an endless loop. ( SR:8606292714 CR:JAGae56466 ) When negotiating for synchronous narrow mode, the target device responded with parameters that were outside the HBA's supported range of values. On receiving this response, the driver should send a reject message to the target so that it goes to the asynchronous narrow mode. However, due to an error in the driver code, the reject message was not sent and the target device remained in the synchronous mode, whereas, the driver was operating in asynchronous mode. This caused the "First party detected bus hang (HTH)" message to be displayed in the syslog followed by a SCSI bus reset during the data phase. Resolution: The code has been modified to handle the out of range parameters correctly. PHKL_27556: ( SR:8606255146 CR:JAGae19473 ) a) The timer was incorrectly being started on abort requests in the select queue. This was leading to an assertion failure on time-out. b) The timer on abort requests was being started even when these requests were not yet given to the chip. Resolution: The driver code has been modified such that : a) Abort requests that are in the select queue are not timed out. b) The timer on abort requests is not started until the request is given to the chip. ( SR:8606267745 CR:JAGae31985 ) The transmit queue array (iocb) index for abort requests was not getting updated. When there was a select time-out on the abort requests, the system panicked when trying to access the uninitialized iocb index. Resolution: The driver code has been modified to correctly update the transmit queue array index for abort requests. ( SR:8606251412 CR:JAGae17477 ) When Domain Validation was in progress and a SCSI bus reset occurred, the system panicked because it tried to incorrectly modify the if_lun pointer. Resolution: The code has been changed not to modify the if_lun pointer when there is a SCSI Bus Reset. ( SR:8606260652 CR:JAGae24975 ) The system panicked because a flag indicating that the DMA set-up is done was not set for auto sense I/O requests even though the resource for the auto sense I/O request was set-up during bus open. Resolution: The code has been changed to set the flag for auto sense I/O requests. ( 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:8606260893 CR:JAGae25215 ) diskinfo(1M) on the Ultra320 IBM drive reported zero capacity because the driver did not handle untagged I/O requests correctly. Resolution: The code has been modified such that the untagged I/O requests are handled correctly. ( SR:8606265839 CR:JAGae30093 ) ioscan(1M) 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:8606286566 CR:JAGae50505 ) Data integrity problem occurred because one of the card registers was not programmed correctly. Resolution: The card register has been programmed correctly to take care of the data integrity problem. ( 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: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: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:8606267106 CR:JAGae31349 ) The postinstall script was exiting unconditionally with a success value in the middle of the script, instead of setting the exitval variable and exiting only at the end of the script. Resolution: The postinstall script has been modified as per scripts architecture recommendations. ( SR:8606229159 CR:JAGad98212 ) When the SCSI bus open fails with any error, the timer is not cancelled. Because of this, the timer pops up and tries to access uninitialized data structures thereby causing the system to panic. Resolution: The code has been changed to cancel the timer if the SCSI bus open fails. ( SR:8606266776 CR:JAGae31021 ) The HTH time-out errors were seen when the system was doing an ioscan(1M) during boot-up. The error was generated because the driver did not re-negotiate for SDTR once the WDTR was rejected by the target device. Resolution: The fix is to re-negotiate for SDTR when WDTR is rejected by the target device. ( SR:8606255080 CR:JAGae19409 ) An assertion failure was wrongly indicated for the LISC_SLEEPING state. It is possible to have multiple threads running on different processors and hence the LISC_SLEEPING state is a valid state. Resolution: Code has been modified to remove the assertion check for LISC_SLEEPING state. ( 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. ( SR:8606259152 CR:JAGae23470 ) If a suspend operation occurred when a SCSI bus reset was in progress, then a flag that was set during SCSI bus reset was not cleared by the suspend operation. This prevented processing of I/O requests even after a successful resume was performed thereby resulting in I/O request hang. Resolution: The driver code has been modified to clear the flag during suspend operation. ( SR:8606270242 CR:JAGae34480 ) The system panicked because a lock was not held before doing a chip reset. This caused data integrity problems and the system panicked. Resolution: The driver code has been modified to hold the lock before calling the chip reset. ( SR:8606277603 CR:JAGae41674 ) The system panicked because an uninitialized pointer was dereferenced. Resolution: The code has been modified to initialize the pointer before dereferencing it. PHKL_27025: ( SR:8606260875 CR:JAGae25197 ) Upon reception of a SCSI Check Condition from a device, the driver automatically switches temporarily to the untagged queuing mode and sends a Request Sense command. If the setup of this command fails, the driver remains in the untagged queuing mode. This prevents any further IO for that device to be processed, thus hanging the processes accessing this device. Resolution: Switch to the untagged queuing mode only after the setup of the Request Sense command succeeds. ( SR:8606238121 CR:JAGae07162 ) The completion queue can silently wrap around. This causes the driver to miss the completion of 64 IOs. These IOs eventually timeout and the driver aborts them, causing a flurry of messages in the system log file. Resolution: Increase the size of the completion queue so it can hold the maximum number of IOs potentially in progress on the SCSI bus at any point in time. ( SR:8606234217 CR:JAGae03437 ) In some cases, an IO can be found on both the select queue and the nexus table. This can lead to a corruption of the select queue when the IO is returned to the upper layer, which leads to the system panic. The corruption is limited to one kernel data structure and does not cause corruption of user data. Resolution: Remove the IO from the select queue before returning it to the upper layer. ( SR:8606259982 CR:JAGae24301 ) The preremove script removes the c8xx driver from the system file without checking for the presence of a superseded c8xx patch. This problem was introduced with PHKL_25712. Resolution: The scripts remove the c8xx driver from the kernel configuration file only if no superseded patch remains installed on the system after this patch is removed. ( SR:8606261268 CR:JAGae25590 ) When the PCI overlapped arbitration is enabled on the LSI53C10xx SCSI chip, the chip sometimes holds the PCI bus for too long. This causes the PCI bridge to HPMC the system. Resolution: Disable overlapped arbitration on the LSI53C10xx SCSI chip. This is done by setting the DPR bit in the CCNTL0 register. ( SR:8606252783 CR:JAGae17850 ) After a target reset occurs, the Domain Validation procedure is initiated only if the device is configured at Ultra160 speed, when it should really be initiated if the initiator is configured at Ultra160 speed. Resolution: Change the Domain Validation criteria to check whether the initiator is configured at Ultra160 speed. ( SR:8606233087 CR:JAGae02311 ) A new timer is set on reception of every SCSI bus reset. This leads to an overflow of the timer table that causes the system to panic. Resolution: When a bus reset occurs, the previous timer, if any, is cancelled and a new timer is set. This ensures that only one timer per SCSI bus exists at any point in time, thus preventing the overflow of the timer table. ( SR:8606237636 CR:JAGae06674 ) When the driver detects the completion of an I/O from a device while this device is in Contingent Allegiance Condition, the driver logs a message, but does not report the completion to the upper layer. This causes the process that initiated the I/O to hang. Resolution: When an I/O completes while the device is in Contingent Allegiance Condition, return the I/O to the requesting layer for further action (typically a retry). PHKL_25712: ( SR:8606226157 CR:JAGad95228 ) Enahancement required to support Online Addition/Replacement for c8xx SCSI Ultra160 driver. Resolution: c8xx SCSI Ultra160 driver supports Online Addition/ Replacement. ( SR:8606224449 CR:JAGad93537 ) An internal driver flag that indicates that a SCSI target reset is in progress was being incorrectly cleared, leading to conditions that cause a system panic. Resolution: The internal driver flag is not cleared. ( SR:8606221001 CR:JAGad90137 ) The driver did not consider the negotiation parameters set by the user using the SIOC_SET_TGT_LIMITS and SIOC_SET_BUS_LIMITS while negotiating with the target. Resolution: Negotiation parameters set by the user are taken into account by the driver while negotiating parameters with the target. ( SR:8606227985 CR:JAGad97043 ) A SCSI target reset causes driver to clear the negotiated data transfer parameter for that target. The driver revalidates the parameters as part of domain validation. If a domain validation IO is being processed by the driver and a second SCSI target reset is issued, a deadlock condition exists in which the target reset cannot be completed until the domain validation completes, and the domain validation cannot complete until target reset completes. If two simultaneous SCSI target reset are issued, the driver clears certain flags causing a bus close to happen even while I/O's on the bus are active, eventually causing a system panic. Resolution: Driver allows SCSI target resets while domain validation is in progress for that target. PHKL_25020: ( SR:8606213503 CR:JAGad82695 ) Adding support for SCSI Ultra160 on HP-UX 11.11. Resolution: New c8xx driver that supports SCSI Ultra160 core I/O and add-in bus adapters on HP-UX 11.11. Enhancement: No (superseded patches contained enhancements) PHKL_27556: Enhancements were delivered in a patch this one has superseded. Please review the Defect Description text for more information. SR: 8606213503 8606221001 8606224108 8606224449 8606226157 8606227985 8606229159 8606233087 8606234217 8606237636 8606238121 8606251412 8606252783 8606255080 8606255146 8606259152 8606259982 8606260652 8606260875 8606260893 8606261268 8606262931 8606265839 8606266332 8606266447 8606266776 8606267106 8606267745 8606270242 8606277603 8606284648 8606286153 8606286566 8606288219 8606292714 8606295528 8606296155 8606297198 8606298628 8606305637 8606311657 8606316072 8606346346 8606351535 Patch Files: OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: /usr/conf/lib/libwsio.a(scsi_ted.o) OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/lib/libdebug.a(scsi_c8xx_dbg.o) /usr/conf/lib/libwsio.a(scsi_c8xx.o) /usr/conf/lib/libwsio.a(scsi_c8xx_pdk.o) OS-Core.KERN2-RUN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/master.d/c8xx what(1) Output: OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: /usr/conf/lib/libwsio.a(scsi_ted.o): scsi_ted.c $Date: 2001/09/14 15:07:27 $Revision: r11 .11/3 PATCH_11.11 (PHKL_25020) OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/lib/libdebug.a(scsi_c8xx_dbg.o): scsi_c8xx_dbg.c $Date: 2002/06/10 17:07:37 $Revision : r11.11/2 PATCH_11.11 (PHKL_27025) /usr/conf/lib/libwsio.a(scsi_c8xx.o): scsi_c8xx.c $Date: 2004/04/26 00:00:33 $Revision: r1 1.11/12 PATCH_11.11 (PHKL_30511) /usr/conf/lib/libwsio.a(scsi_c8xx_pdk.o): scsi_c8xx_pdk.c $Date: 2003/02/28 13:50:37 $Revision : r11.11/6 PATCH_11.11 (PHKL_27556) OS-Core.KERN2-RUN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/master.d/c8xx: c8xx $Date: 2001/09/10 19:21:02 $Revision: r11.11/1 PATCH_11.11 (PHKL_25020) cksum(1) Output: OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: 1626675865 1556 /usr/conf/lib/libwsio.a(scsi_ted.o) OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: 3055918913 170768 /usr/conf/lib/libdebug.a(scsi_c8xx_dbg.o) 203909628 213312 /usr/conf/lib/libwsio.a(scsi_c8xx.o) 801789271 20280 /usr/conf/lib/libwsio.a(scsi_c8xx_pdk.o) OS-Core.KERN2-RUN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: 4047758906 1135 /usr/conf/master.d/c8xx Patch Conflicts: None Patch Dependencies: s700: 11.11: PHKL_30510 s800: 11.11: PHKL_30510 Hardware Dependencies: None Other Dependencies: PHKL_27556: Multi-initiator support is available on Ultra160 SCSI cards with hardware revisions later than A6828-60001 and A6829-60001. PHKL_25712: This patch is one of the two required to support Online Addition of the adapters supported by c8xx SCSI driver. The other patch is PHCO_25831. These patches can be installed independent of each other and in any order. PHKL_25020: This patch is one of the three needed to support the SCSI Ultra160 interface on HP-UX 11.11. The three patches are PHKL_25020, PHKL_24854 and PHKL_24031. These patches may be installed independently of each other and in any order. Without SCSI Ultra160 controller hardware present on the system, these changes will have no effect on your system. Supersedes: PHKL_29685 PHKL_29035 PHKL_27556 PHKL_27025 PHKL_25712 PHKL_25020 Equivalent Patches: PHKL_30509: s700: 11.00 s800: 11.00 Patch Package Size: 200 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_30511 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHKL_30511.depot By default swinstall will archive the original software in /var/adm/sw/save/PHKL_30511. 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_30511.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHKL_30511.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHKL_30511.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None