Patch Name: PHKL_25046 Patch Description: s700_800 11.04 (VVOS) SCSI Tape (stape) cumulative Creation Date: 01/09/12 Post Date: 01/10/09 Hardware Platforms - OS Releases: s700: 11.04 s800: 11.04 Products: N/A Filesets: OS-Core.CORE-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32/64,v=HP ProgSupport.C-INC,fr=B.11.04,fa=HP-UX_B.11.04_32/64,v=HP OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32,v=HP OS-Core.KERN2-RUN,fr=B.11.04,fa=HP-UX_B.11.04_32,v=HP OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP OS-Core.KERN2-RUN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP Automatic Reboot?: Yes Status: General Release Critical: No (superseded patches were critical) PHKL_23046: PANIC Ported HP-UX Patch PHKL_22856 to VVOS. Based upon PHKL_22856: PANIC The danger of panic is only valid when using Fujitsu drives. PHKL_18555: PANIC HANG Ported HP-UX Patch PHKL_14026 to VVOS. Based upon PHKL_14026: PANIC HANG Category Tags: defect_repair hardware_enablement enhancement general_release critical panic halts_system Path Name: /hp-ux_patches/s700_800/11.X/PHKL_25046 Symptoms: PHKL_25046: Ported HP-UX patch PHKL_23790 to VVOS Based on HP-UX patch PHKL_23790: (SR: 8606173159 CR: JAGad42419) No symptoms. Enhancement request to add stape driver support for the SuperDLT 220 tape drive. ( SR: 8606177789 Chart: JAGad47021 ) When using an Exabyte 8505XL tape drive with the tape2 driver, the following command sequence results in the last command failing with an EIO error: tar cf /dev/rmt/0mn anyfile mt -t /dev/rmt/0mn rew mt -t /dev/rmt/0mn fsf 1 ( SR: 8606179467 Chart: JAGad48691 ) When sharing a tape drive between two servers, running the command insf or mksf on one host (HOST A) to create special device files for the tape device will cause any command from the other server (Host B) to the tape drive to fail with an EBUSY error. PHKL_23046: Ported HP-UX patch PHKL_22856 to VVOS Based on HP-UX patch PHKL_22856: ( SR: 8606171659 Chart: JAGad40923 ) When using a Fujitsu drive, the system may panic during open due to a data page fault. The following stack trace is seen: panic+0x14 report_trap_or_int_and_panic+0x4c trap+0xea8 $RDB_trap_patch+0x38 st_fuji_mode_enable+0xfc st_open+0x1434 scsi_lun_open+0x718 stape_open+0xc4 call_open_close+0x114 opend+0x108 spec_open+0x6c vns_copen+0x48 vn_open+0x88 copen+0xdc open+0x38 syscall+0x1c8 $syscallrtn+0x0 ( SR: 8606173149 Chart: JAGad42409 ) An open to a freshly reset or powered-on DLT drive loaded with media attached to a FC-SCSI Bridge will fail with errno EIO. Based on HP-UX patch PHKL_22287: ( SR: 8606163660 Chart: JAGad32964 ) No symptoms. Enhancement request for DLT1 and Ultrium-1 tape drive support. ( SR: 8606163664 Chart: JAGad32968 ) MTIOCGET ioctl command fails when no media is loaded in drive. Based on HP-UX patch PHKL_22161: ( SR: 8606128991 Chart: JAGac86537 ) When sending an MTIOCGET to a tape drive that is not responding, the command completes successfully and returns erroraneous status data. ( SR: 8606132234 Chart: JAGad01383 ) Polling of a tape device in a shared tape environment may result in excessive diagnostic log entries notifying of a RESV_CONFLICT return status. ( SR: 8606134606 Chart: JAGad03741 ) The diskinfo reports an incorrect value for the capacity of a DDS4 device. ( SR: 8606138507 Chart: JAGad07709 ) The first open of a loaded tape drive after being powered on will return EBUSY. ( SR: 8606139809 Chart: JAGad09121 ) The mksf command will not recognize the density values for 9490, SD-3, 9840, 3590, DLT7000 and DDS3. ( SR: 8606152688 Chart: JAGad22018 ) When attempting to write to a DLT tape with an older density device file (ie DLT8000 drive w/ DLT4000 density), the tape is not actually written to in the older format. ( SR: 8606152691 Chart: JAGad22021 ) Enhancement to add stape support of MTERASE. Based on HP-UX patch PHKL_20530: ( SR: 8606125218 DTS: JAGac40609 ) Enhancement to add DDS4 autoloader and standalone support. Based on HP-UX patch PHKL_20507: ( SR: 8606100743 DTS: JAGab31975 ) When performing an ioscan after a write() to a tape device has hung, all further commands to the tape device LUN will stall indefinitely. A reboot is required to free the LUN. Based on HP-UX patch PHKL_19805: ( SR: 8606106213 Chart: JAGab75144 ) When a customer uses a DLT drive and specifies a density other than "BEST" the driver was not turning on compression when the density chosen was one for which compression should be used. ( SR: 8606102083 Chart: JAGab67522 ) When an ioscan is done to a DLT drive at the same time the drive is being opened the system may report Unexpected Disconnect to the console and cause the drive to hang. ( SR: 8606106216 Chart: JAGab75147 ) Enhancement: added a tunable st_ats_enabled to allow the user to turn off the automatic SCSI RESERVE of a tape device on open. The reservation was causing problems with Alexandria backup software. The tunable applies to the entire system and can not be set on a per-device basis. The default is to enable the automatic reservation. Based on HP-UX patch PHKL_19080: (SR: 8606100520 Chart: JAGab16437) Enhancement request to allow the stape driver to recognize the Quantum DLT 8000 tape devices. (SR: 8606100522 Chart: JAGab16439) When using a StorageTek 9840 drive, issuing the ioctl MTIOCTOP with an operation code of MTEOD (seek to EOD) returns EINVAL, even though this operation is supported on the 9840 drive. PHKL_18555: Ported HP-UX patch PHKL_14026 to VVOS Based on HP-UX patch PHKL_14026: - System panics with a data page fault in mtstart() on an MP system. - Tape access hangs on an MP system. - System panic "flush page function could not find non-access virtual translation" Defect Description: PHKL_25046: Ported HP-UX patch PHKL_23790 to VVOS Based on HP-UX patch PHKL_23790: (SR: 8606173159 CR: JAGad42419) Enhancement request to add stape driver support for the SuperDLT 220 tape drive. Resolution: None required - enhancement request. ( SR: 8606177789 Chart: JAGad47021 ) Exabyte tape drives use byte 19 in the request sense data to indicate whether the tape head is at Beginning of Tape (BOT). The tape2 driver is not properly maintaining the Exabyte tape drive's head postion by not reseting an internal BOT flag. After writing data, the tape2 driver mistakenly thinks the head position is at BOT so it doesn't write a filemark. The attempt to space forward one filemark thus fails as no filemark exists. Resolution: The tape2 driver now properly maintains the Exabyte tape drive's head position by reseting the internal BOT flag when byte 19 of the request sense data indicates we are not at BOT. ( SR: 8606179467 Chart: JAGad48691 ) The routine in the stape driver that provides insf and mksf with tape drive information is issuing a reserve scsi command without sending a release scsi command when complete. The tape device is then stuck in a reserved state which causes all access from another host to fail with BUSY. Resolution: A reserve scsi command is no longer sent to the tape device before retrieving tape drive information. The reserve is not needed for data integrity protection as the driver does not access the media or do tape motion when retrieving tape drive information for insf and mksf. PHKL_23046: Ported HP-UX patch PHKL_22856 to VVOS Based on HP-UX patch PHKL_22856: ( SR: 8606171659 Chart: JAGad40923 ) A statement in a Fujitsu specific open routine that checks for a null pointer has incorrect syntax. The statement does not properly check for the null pointer causing a data page fault and subsequent panic of the system. Resolution: The syntax of the routine has been changed to properly check for a null pointer. ( SR: 8606173149 Chart: JAGad42409 ) A DLT drive loaded with media will queue two Unit Attentions after reset or power up. The driver will retry a reserve command to flush the Unit Attentions, but the FC-SCSI bridge intercepts the reserves as expected not allowing them to flush the drives Unit Attentions. The next command after the reserves is sent down and fails due to the pending Unit Attentions causing the open to fail with EIO. Resolution: The driver will now retry test unit ready's before the reserve command to flush any pending Unit Attentions. Based on HP-UX patch PHKL_22287: ( SR: 8606163660 Chart: JAGad32964 ) Enhancement request for DLT1 and Ultrium-1 tape drive support. Resolution: None required - enhancement request. ( SR: 8606163663 Chart: JAGad32967 ) The MTIOCGET was previously setup to return ENXIO if the drive was offline to prevent a situation when a drive not selecting on the bus may return invalid data. Resolution: MTIOCGET no longer returns ENXIO when media is not present. Based on HP-UX patch PHKL_22161: ( SR: 8606128991 Chart: JAGac86537 ) The MTIOCGET routine does not pass on any error generated by the drive online status check. Resolution: MTIOCGET will now return ENXIO if the drive is offline. ( SR: 8606132234 Chart: JAGad01383 ) RESV_CONFLICT status causes the driver to a create a diagnostics log entry when this status is encountered. Resolution: Removed directive to log all I/O's with RESV_CONFLICT status. ( SR: 8606134606 Chart: JAGad03741 ) When getting the capacity of any DDS device via SIOC_GET_CAPACITY, the driver applies a correction factor to account an old DDS1 firmware bug. It applies the correction factor without considering the device type. Resolution: Driver now checks if the device is a DDS1 device before applying the correction factor. ( SR: 8606138507 Chart: JAGad07709 ) When a loaded drive is powered on, it queues up two Unit Attentions (29 and 28). During open, the first Unit Attention is captured by a test unit ready, but Unit Attention 28 notifying that the media has changed causes the reserve to fail returning EBUSY. Resolution: Added reserve retry in open routine to get past Unit Attention 28. ( SR: 8606139809 Chart: JAGad09121 ) Can not create custom device files with mksf for any of the following densities: 9490, SD-3, 9840, 3590, DLT7000 and DDS3. Resolution: Added the densities to the kernel to be recognized by mksf. ( SR: 8606152688 Chart: JAGad22018 ) With media loaded, a DLT drive will not apply a density requested via mode select until a write is issued. During open, the density requested by the driver is not immediately applied to drive confusing the driver on subsequent mode selects. These subsequent mode selects set the drive back to the previous density nullifying the initial density request. Resolution: Added check for DLT device to resend the requested density via mode select when setting other parameters during open. ( SR: 8606152691 Chart: JAGad22021 ) Enhancement to add support of MTERASE command. Resolution: Added MTERASE command with immediate bit off and long bit on. Based on HP-UX patch PHKL_20530: ( SR: 8606125218 DTS: JAGac40609 ) No defect, adds support for DDS4 drives. Resolution: None required - enhancement request Based on HP-UX patch PHKL_20507: ( SR: 8606100743 DTS: JAGab31975 ) With a tape device LUN opened by stape, an ioscan pass-thru command retry will enter stape's pass-thru clean-up routine a second time releasing the LUN semaphore to an invalid, permanently locked state. Resolution: Stape does not release the LUN semaphore for the pass-thru command if the pass-thru driver is going to retry its IO attempt. Based on HP-UX patch PHKL_19805: ( SR: 8606106213 Chart: JAGab75144 ) DLT drives specify compression in two places - embedded within the density setting, and also separately on a mode page. The driver was selecting the correct density, but was not enabling compression on the mode page. Resolution: Added flags for the DLT drives to also enable compression via the mode page ( SR: 8606102083 Chart: JAGab67522 ) The problem is a combination of incorrect behavior from the DLT drive, incorrect behavior in SCSI services, and unusual behavior in the stape driver while attempting to work around a 7980 firmware bug. The tape driver was slowing the connection down to asynchronous mode before the initial inquiry because 7980s do not do synchronous i/o correctly. Then, if the drive was not a 7980, it would go back to synchronous. In the mean time, if a passthrough I/O attempted to negotiate for synchronous mode, the interface layer got confused with one driver asking for sync and the other asking for async. Resolution: The code was rearranged to first do the inquiry in synchronous mode, then check for a 7980 and slow down if necessary. We found through testing that the 7980 was able to handle the synchronous mode inquiry properly. ( SR: 8606106216 Chart: JAGab75147 ) No defect, this is a new feature based on an enhancement request. Resolution: Made the st_ats_enabled flag a system tunable. Based on HP-UX patch PHKL_19080: (SR: 8606100520 Chart: JAGab16437) No defect. This is an enhancement request to support new hardware. Resolution: Added the DLT 8000 device to the table of known devices in stape. Also added entries for the DLT 8000 tape densities to the tables in mtio.h. (SR: 8606100522 Chart: JAGab16439) The table which describes tape devices in stape has a flag indicating whether or not the device will support the "space to EOD" command. The flag was inadvertently set to the wrong value. Resolution: Removed the "CR_NO_SEEK_EOD" flag from the 9840 entry. PHKL_18555: Ported HP-UX patch PHKL_14026 to VVOS Based on HP-UX patch PHKL_14026: Defect on MP systems caused by the top half of the driver waking up and starting to access the queue on one processor while the bottom half was still running and modifying the queue on another processor. Flush page panic caused by not passing the residue value up from tape14 to tape0 when a read encounters an I/O error. When this happens and the read is into shared memory the fic_one_page_2 function tries to flush invalid pages. SR: 1653245597 8606100520 8606100522 8606100743 8606102083 8606106213 8606106216 8606128991 8606132234 8606134606 8606138507 8606139809 8606152688 8606152691 8606163660 8606163663 8606171659 8606173149 8606177789 8606179467 8606173159 Patch Files: OS-Core.CORE-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32/64,v=HP: /usr/conf/h/mtio.h ProgSupport.C-INC,fr=B.11.04,fa=HP-UX_B.11.04_32/64,v=HP: /usr/include/sys/mtio.h OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32,v=HP: /usr/conf/lib/libhp-ux.a(mt_prop.o) /usr/conf/lib/libhp-ux.a(scsi_tape.o) /usr/conf/lib/libhp-ux.a(tape0.o) /usr/conf/lib/libhp-ux.a(tape14.o) OS-Core.KERN2-RUN,fr=B.11.04,fa=HP-UX_B.11.04_32,v=HP: /usr/conf/master.d/scsi-tune /usr/conf/space.h.d/scsi-tune.h OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: /usr/conf/lib/libhp-ux.a(mt_prop.o) /usr/conf/lib/libhp-ux.a(scsi_tape.o) /usr/conf/lib/libhp-ux.a(tape0.o) /usr/conf/lib/libhp-ux.a(tape14.o) OS-Core.KERN2-RUN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: /usr/conf/master.d/scsi-tune /usr/conf/space.h.d/scsi-tune.h what(1) Output: OS-Core.CORE-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32/64,v=HP: /usr/conf/h/mtio.h: mtio.h $Date: 2000/12/13 10:11:15 $Revision: r11ros/ 12 PATCH_11.00 (PHKL_22856) ProgSupport.C-INC,fr=B.11.04,fa=HP-UX_B.11.04_32/64,v=HP: /usr/include/sys/mtio.h: mtio.h $Date: 2000/12/13 10:11:15 $Revision: r11ros/ 12 PATCH_11.00 (PHKL_22856) OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32,v=HP: /usr/conf/lib/libhp-ux.a(mt_prop.o): $Source: kern/io/mt_prop.c, hpuxsysio, vvos_rose, ro se0201 $ $Date: 01/01/23 05:09:24 $ $Revisio n: 1.15 PATCH_11.04 (PHKL_23046) $ /usr/conf/lib/libhp-ux.a(tape0.o): $Source: kern/sio/tape0.c, hpuxsysio, vvos_rose, ros e0157 $ $Date: 99/05/07 14:54:56 $ $Revision : 1.7 PATCH_11.04 (PHKL_18555) $ /usr/conf/lib/libhp-ux.a(tape14.o): tape14.c $Date: 2001/03/28 11:06:15 $Revision: r11ro s/3 PATCH_11.00 (PHKL_23790) /usr/conf/lib/libhp-ux.a(scsi_tape.o): $Source: kern/wsio/scsi_tape.c, hpuxsysio, vvos_rose , rose0240 $ $Date: 01/10/04 08:40:50 $ $Rev ision: 1.14.1.9 PATCH_11.04 (PHKL_25046) $ OS-Core.KERN2-RUN,fr=B.11.04,fa=HP-UX_B.11.04_32,v=HP: /usr/conf/master.d/scsi-tune: scsi-tune $Date: 1999/10/04 13:45:56 $Revision: r11r os/4 PATCH_11.00 (PHKL_19805) /usr/conf/space.h.d/scsi-tune.h: scsi-tune.h $Date: 1999/10/04 13:45:56 $Revision: r1 1ros/4 PATCH_11.00 (PHKL_19805) OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: /usr/conf/lib/libhp-ux.a(mt_prop.o): $Source: kern/io/mt_prop.c, hpuxsysio, vvos_rose, ro se0201 $ $Date: 01/01/23 05:09:24 $ $Revisio n: 1.15 PATCH_11.04 (PHKL_23046) $ /usr/conf/lib/libhp-ux.a(tape0.o): $Source: kern/sio/tape0.c, hpuxsysio, vvos_rose, ros e0157 $ $Date: 99/05/07 14:54:56 $ $Revision : 1.7 PATCH_11.04 (PHKL_18555) $ /usr/conf/lib/libhp-ux.a(tape14.o): tape14.c $Date: 2001/03/28 11:06:15 $Revision: r11ro s/3 PATCH_11.00 (PHKL_23790) /usr/conf/lib/libhp-ux.a(scsi_tape.o): $Source: kern/wsio/scsi_tape.c, hpuxsysio, vvos_rose , rose0240 $ $Date: 01/10/04 08:40:50 $ $Rev ision: 1.14.1.9 PATCH_11.04 (PHKL_25046) $ OS-Core.KERN2-RUN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: /usr/conf/master.d/scsi-tune: scsi-tune $Date: 1999/10/04 13:45:56 $Revision: r11r os/4 PATCH_11.00 (PHKL_19805) /usr/conf/space.h.d/scsi-tune.h: scsi-tune.h $Date: 1999/10/04 13:45:56 $Revision: r1 1ros/4 PATCH_11.00 (PHKL_19805) cksum(1) Output: OS-Core.CORE-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32/64,v=HP: 2602249919 30764 /usr/conf/h/mtio.h ProgSupport.C-INC,fr=B.11.04,fa=HP-UX_B.11.04_32/64,v=HP: 2602249919 30764 /usr/include/sys/mtio.h OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32,v=HP: 3385338543 19576 /usr/conf/lib/libhp-ux.a(mt_prop.o) 2965199081 28724 /usr/conf/lib/libhp-ux.a(tape0.o) 2607926866 46556 /usr/conf/lib/libhp-ux.a(tape14.o) 1451133218 90256 /usr/conf/lib/libhp-ux.a(scsi_tape.o) OS-Core.KERN2-RUN,fr=B.11.04,fa=HP-UX_B.11.04_32,v=HP: 3442170717 1329 /usr/conf/master.d/scsi-tune 2014131006 1764 /usr/conf/space.h.d/scsi-tune.h OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: 1553116559 48536 /usr/conf/lib/libhp-ux.a(mt_prop.o) 1214898857 59736 /usr/conf/lib/libhp-ux.a(tape0.o) 3676260656 89896 /usr/conf/lib/libhp-ux.a(tape14.o) 1186427689 193920 /usr/conf/lib/libhp-ux.a(scsi_tape.o) OS-Core.KERN2-RUN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: 1056111117 1330 /usr/conf/master.d/scsi-tune 2240142296 1765 /usr/conf/space.h.d/scsi-tune.h Patch Conflicts: None Patch Dependencies: s700: 11.04: PHKL_19142 s800: 11.04: PHKL_19142 Hardware Dependencies: None Other Dependencies: None Supersedes: PHKL_18555 PHKL_23046 Equivalent Patches: PHKL_23790: s700: 11.00 s800: 11.00 Patch Package Size: 700 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_25046 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHKL_25046.depot By default swinstall will archive the original software in /var/adm/sw/save/PHKL_25046. If you do not wish to retain a copy of the original software, use the patch_save_files option: swinstall -x autoreboot=true -x patch_match_target=true \ -x patch_save_files=false -s /tmp/PHKL_25046.depot 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_25046.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHKL_25046.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHKL_25046.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: This patch depends on base patch PHKL_19142. For successful installation please insure that PHKL_19142 is already installed, or that PHKL_19142 is included in the same depot with this patch and PHKL_19142 is selected for installation.