Patch Name: PHKL_12982 Patch Description: s700_800 10.30 HP-PB SE SCSI (scsi1) cumulative patch Creation Date: 97/10/23 Post Date: 97/10/28 Hardware Platforms - OS Releases: s700: 10.30 s800: 10.30 Products: N/A Filesets: OS-Core.CORE-KRN Automatic Reboot?: Yes Status: General Release Critical: Yes PHKL_12982: OTHER Some critical HA applications, or backup software may not work correctly. PHKL_12726: OTHER Could cause programs that uses SCSI commands, such as robotic tape backup units to fail SCSI commands. Path Name: /hp-ux_patches/s700_800/10.X/PHKL_12982 Symptoms: PHKL_12982: LLIO error 45 (residue problem) on odd aligned read from a device using the scsi1.c driver. This problem has the effect of causing problems with I/O communications with robotic devices such as DDS autoloaders, MO autochangers and libraries, and DLT libraries. Applications that utilize these types of devices, such as OmniBack, OmniStorage, Filenet, may exhibit problems communicating with these devices. The system diagnostics and Predictive software may also experience problems. PHKL_12726: I/O to a SE SCSI device which uses either odd length byte count or an odd aligned buffer on a read could fail with an I/O error or an error code 45 from the scsi1 driver. PHKL_12446: Error code 76 is logged during periods of high bus utilization. PHKL_12091: Corruption of one 1 byte after read buffer,on SE-SCSI cards. But only when the read buffer's starting address is odd. Defect Description: PHKL_12982: The defect was caused by an earlier patch to the scsi1.c driver to fix SR 4701359984. It can be reproduced by performing a read from a device using a scsi1.c driver to an odd aligned address which would result in a data residue. This usually occurs when doing an IOCTL (such as INQUIRY) where one would expect 36 bytes of data but the allocation length is set to something larger such as 64 bytes. If these conditions are met the LLIO error 45 may be seen. PHKL_12726: This defect would be seen if an early patch had been applied that included a fix for a corruption problem with odd length or odd aligned buffer on a read. It could be reproduced by sending SCSI ioctl commands to a device using the scsi1 driver which would result in a data residue. A data residue would result if an inquiry command (for example) which expected 18 bytes of data, where the allocation length in the SCSI CDB specified was greater than 18. PHKL_12446: The scsi1 interrupt handler is occasionally dispatched "early" -- before the target has transitioned from message out to the next phase. PHKL_12091: To reproduce: write a program to read from a disc, on an SE-SCSI adapter. First the program should read an even and an odd number of bytes into some _initialized_ char array. char buf1[68]; char buf2[68]; ... /* init buf's, to know what stayed, what was read */ read(fd, buf1, 64); read(fd, buf2, 63); Then read an even and an odd number of bytes to the same array but starting with arr_addres + 1. ... read(fd, buf1+1, 64); read(fd, buf2+1, 63); The odd address read should read one extra byte, before the patch is applied. SR: 1653198093 4701365999 4701368654 4701371963 Patch Files: /usr/conf/lib/libhp-ux.a(scsi1.o) /usr/conf/sio/scsi1.h what(1) Output: /usr/conf/lib/libhp-ux.a(scsi1.o): scsi1.o $Date: 97/10/22 14:27:33 $ $Revision: 1.17.1 02.15 $ PATCH_10.30 (PHKL_12982) /usr/conf/sio/scsi1.h: scsi1.h: $Revision: 1.14.102.6 $ $Date: 97/09/09 10: 44:52 $ PATCH_10.30 (PHKL_12446) cksum(1) Output: 737889897 77668 /usr/conf/lib/libhp-ux.a(scsi1.o) 3095339400 44691 /usr/conf/sio/scsi1.h Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: Single-Ended SCSI cards on an NIO bus. Supersedes: PHKL_12091 PHKL_12446 PHKL_12726 Equivalent Patches: PHKL_12843: s800: 10.01 PHKL_12966: s800: 10.10 PHKL_12967: s800: 10.20 Patch Package Size: 190 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_12982 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHKL_12982.depot 5b. For a homogeneous NFS Diskless cluster run swcluster on the server to install the patch on the server and the clients: swcluster -i -b This will invoke swcluster in the interactive mode and force all clients to be shut down. WARNING: All cluster clients must be shut down prior to the patch installation. Installing the patch while the clients are booted is unsupported and can lead to serious problems. The swcluster command will invoke an swinstall session in which you must specify: alternate root path - default is /export/shared_root/OS_700 source depot path - /tmp/PHKL_12982.depot To complete the installation, select the patch by choosing "Actions -> Match What Target Has" and then "Actions -> Install" from the Menubar. 5c. For a heterogeneous NFS Diskless cluster: - run swinstall on the server as in step 5a to install the patch on the cluster server. - run swcluster on the server as in step 5b to install the patch on the cluster clients. By default swinstall will archive the original software in /var/adm/sw/patch/PHKL_12982. If you do not wish to retain a copy of the original software, you can create an empty file named /var/adm/sw/patch/PATCH_NOSAVE. Warning: If this file exists when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. It is recommended that you move the PHKL_12982.text file to /var/adm/sw/patch for future reference. To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHKL_12982.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None