Patch Name: PHNE_28654 Patch Description: s700_800 11.04 (VVOS) Cumulative Mux and Pty Patch Creation Date: 03/02/18 Post Date: 03/05/13 Hardware Platforms - OS Releases: s700: 11.04 s800: 11.04 Products: N/A Filesets: OS-Core.CORE2-KRN,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 Automatic Reboot?: Yes Status: General Release Critical: Yes PHNE_28654: PANIC HANG Based on HP-UX Patch PHNE_27788: PANIC Based on HP-UX Patch PHNE_27393: PANIC Based on HP-UX Patch PHNE_25913: PANIC Based on HP-UX Patch PHNE_25346: HANG PHNE_22827: PANIC HANG Based on HP-UX Patch PHNE_21257: HANG Based on HP-UX Patch PHNE_20431: PANIC PHNE_19121: PANIC HANG Based on HP-UX Patch PHNE_13801: HANG PANIC Category Tags: defect_repair hardware_enablement enhancement general_release critical panic halts_system Path Name: /hp-ux_patches/s700_800/11.X/PHNE_28654 Symptoms: PHNE_28654: Ported HP-UX patch PHNE_27788 to VVOS Based on HP-UX patch PHNE_27788: 1. { SR: 8606275701 CR: JAGae39777 } System panic in function ttin() due to data page fault. Stack trace is as below: panic+0x14 report_trap_or_int_and_panic+0x84 trap+0xd9c thandler+0xd24 +------------- TRAP ---------------------------- | Trap type 15 in KERNEL mode at 0x22e51c (ttin+0x144) | p struct save_state 0x7649c00.0x400003ffffff16d0 +------------- TRAP ---------------------------- ttin+0x144 pty0_write+0x47c spec_rdwr+0x180 vno_rw+0x1d4 write+0x104 syscall+0x9fc syscallinit+0x54c 2. { SR: 8606278579 CR: JAGae42637 } Users cannot open new telnet sessions after system reports the error message "Telnet device drivers missing: No such device". Based on HP-UX patch PHNE_27393: ( SR:8606263900 CR:JAGae28226 ) If the GSP/MP goes in to reset mode and when there is activity on the UPS port, the system will generate an HPMC with the following trace. asio0_modemstat+0x2c asio0_control+0xa40 asio0_ioctl+0xa00 spubind_cdev_ioctl+0xa8 spec_ioctl+0xac vno_ioctl+0x98 ioctl+0x120 syscall+0x750 $syscallrtn+0x0 Based on HP-UX patch PHNE_25913: Panic in hpstreams_select_int(). Race between select() and close(). Based on HP-UX patch PHNE_25603: "ioscan -f" reports UNCLAIMED for the "S/W State" field and UNKNOWN for the "H/W Type" field. For example: # ioscan -fnC tty Class I H/W Path Drvr S/W State H/W Type Description ========================================================== unknown -1 0/0/4/0 UNCLAIMED UNKNOWN PCIBaseSystem(103c128d) tty 0 0/0/4/1 asio0 CLAIMED INTERFACE PCI Serial(103c1048) Based on HP-UX patch PHNE_25346: System hangs due to proc table filling up, it happens when wakeup occurs before sleep can be called in the console driver. PHNE_25074: Ported HP-UX patch PHNE_23930 to VVOS Based on HP-UX patch PHNE_23930: Enhance the pty() master write to support the O_NONBLOCK option. This change is to prevent ied() from hanging. PHNE_22827: Ported HP-UX patch PHNE_21897 to VVOS Based on HP-UX patch PHNE_21897: Enhance the system console to work with new (to be released) L-Class and N-Class servers. Based on HP-UX patch PHNE_21257: mux2 driver's block mode read, when times out hangs the system. Based on HP-UX patch PHNE_20431: 1) Data memory protection fault panic when there is framing error in the data received in mux card. 2) System panic when using BSD ptys. Based on HP-UX patch PHNE_20150: B1000, C3000, J5000, and J7000 workstations do not run on HPUX 11.00. HP 9000 N-Class servers hang dialing out over the remote console. PHNE_19121: Ported HP-UX patch PHNE_18272 to VVOS Based on HP-UX patch PHNE_18272: Added GSP console support to the asio0 driver. Based on HP-UX patch PHNE_13801: 1 System may hang during reboot due to pty and mux2 deadlock. 2 VTIME parameter is not working correctly when non-blocking select()'s are used in a loop. 3 Data page fault panic on 64 bit system with mux4 card when hardware bus error detected. Defect Description: PHNE_28654: Ported HP-UX patch PHNE_27788 to VVOS Based on HP-UX patch PHNE_27788: 1. { SR: 8606275701 CR: JAGae39777 } System panics when code in ttin() tries to access the wrong data page. This is because of the wrong data buffer length received from pty0_write(). Resolution: Code changes have been made to handle larger buffer-length values. 2. { SR: 8606278579 CR: JAGae42637 } Tels(telnet slave) devices were not being freed due to a defect that had been introduced with the SR:8606212324 fix. Resolution: Removed the fix for SR:8606212324 CR:JAGad81510 that introduced the tels problem. Based on HP-UX patch PHNE_27393: ( SR:8606263900 CR:JAGae28226 ) When there is activity on the direct mapped UART (UPS) and if the GSP/MP goes into reset mode, system will generate an HPMC due to some issues in the hardware. Resolution: IO ports on the SP2 Chip are remapped to avoid the HPMC problem. The usage of direct mapped UART which had the UPS port mapped on it is discontinued and instead, emulated UART is now providing the UPS port. Based on HP-UX patch PHNE_25913: ( SR:8606212324 CR:JAGad81510 ) The system has paniced with the following stack: panic+0x14 report_trap_or_int_and_panic+0x84 trap+0xd9c nokgdb+0x8 spinlock+0x14 _csq_acquire+0xf0 hpstreams_select_int+0x20c hpstreams_select+0x34 sy_select+0xa0 spubind_cdev_select+0x84 spec_select+0x9c vno_select+0x2c select+0xa8 syscall+0x6f8 $syscallrtn+0x0 Resolution: Increment the device open count of the tty device during the driver calls and decrement it after the call is complete. Based on HP-UX patch PHNE_25603: ( SR:8606200932 CR:JAGad70108 ) When ioscan is done on all the present platforms, an UNKNOWN/CLAIMED entry will be found in the ioscan output for function 0 device on CoreIO as there was no driver presently to claim it Resolution: A new driver has been provided to claim the unknown device on the CoreIO card. Based on HP-UX patch PHNE_25346: In Console driver, wakeup could be called under some conditions before it sleeps and due to this wakeup miss it would sleep for ever. This would be acquired by init and the proc table fills up along with other zombies and results in system hang. Resolution: Console driver is preventing such situations in its flow by protecting it with locks. PHNE_25074: Ported HP-UX patch PHNE_23930 to VVOS Based on HP-UX patch PHNE_23930: Existing pty() master write did not support the O_NONBLOCK option. PHNE_22827: Ported HP-UX patch PHNE_21897 to VVOS Based on HP-UX patch PHNE_21897: Existing HP-UX 11.00 console driver does not support new (to be released) L-Class and N-Class systems. Resolution: Console driver enhanced to support new (to be released) L-Class and N-class systems. Based on HP-UX patch PHNE_21257: mux2 driver could get into infinite sleep state if a command issued from ttyisr context Resolution: In mux2 driver, if a command is issued from timeout routine called by ttisr, AND if mux firmware is busy, mux2_docmdx() may have a chance to get a cleared ready bit after issuing the command. So the mux2_docmd() has to check for ttisr context and issue a mux2_icscmd() instead. Based on HP-UX patch PHNE_20431: 1) The panic happens because a counter in tterase() of line discipline code is not interpreted correctly. 2) System panic when trying to use beyond maximum available BSD pty drivers. Resolution: 1) The counter in tterase() was of type unsigned int. The code tried to use 0xffff to compare it to -1. The fix is to change counter to type int. 2) The fix enforce get_device() to check the minor # with the boudary limit of available pty devices. Based on HP-UX patch PHNE_20150: SuperIO console support was not part of the HPUX Extension Pack (May 1999). Merged SuperIO console support from HPUX 10.20. SR: 8606105374 CR: JAGab73405 When the Diva chips FIFO is reset with characters in it, the Diva clears the FIFO and the LSR register but fails to clear the IIR register. As a result the asio0 interupt routine hangs trying to read a character that is not there. The fix was to check that the LSR register is set before entering the read FIFO loop. This is easily reproduced by using the SAS to enable and then disable the remote console and then using cu to enable a modem connected to the remote console port. PHNE_19121: Ported HP-UX patch PHNE_18272 to VVOS Based on HP-UX patch PHNE_18272: This is an enhancement request to support a new console for a new platform. Resolution: Enhancement. Based on HP-UX patch PHNE_13801: 1 System may hang during reboot due to pty and mux2 deadlock. 2 VTIME parameter is not working correctly when non-blocking select()'s are used in a loop, because each call to select() may cancel a previous inter-character timer. 3 64 bit system with mux4 card panicked when hardware error detected because of a 64 bit address truncation to 32 bits and trying to access the invalid address. Enhancement: No (superseded patches contained enhancements) PHNE_25074: Ported HP-UX patch PHNE_23930 to VVOS Based on HP-UX patch PHNE_23930: pty() master write supports O_NONBLOCK option. PHNE_22827: Ported HP-UX patch PHNE_21897 to VVOS Based on HP-UX patch PHNE_21897: This patch delivers support for the L, N Class. PHNE_19121: Ported HP-UX patch PHNE_18272 to VVOS SR: 8606212324 5003399733 5003403055 1653255174 4701406538 8606105374 8606107507 8606107058 1653306845 1653298406 8606131476 8606144076 8606186148 8606206183 8606200932 8606263900 8606275701 8606278579 8606294836 Patch Files: OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32,v=HP: /usr/conf/lib/libhp-ux.a(tty_tty.o) /usr/conf/lib/libhp-ux.a(hptt0.o) /usr/conf/lib/libhp-ux.a(mux2.o) /usr/conf/lib/libhp-ux.a(mux4.o) /usr/conf/lib/libhp-ux.a(mux5.o) /usr/conf/lib/libhp-ux.a(tty_pty.o) /usr/conf/lib/libhp-ux.a(asio0.o) /usr/conf/lib/libhp-ux.a(ttycomn.o) /usr/conf/lib/libhp-ux.a(sastty.o) /usr/conf/lib/libhp-ux.a(func0.o) /usr/conf/master.d/func0 OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: /usr/conf/lib/libhp-ux.a(tty_tty.o) /usr/conf/lib/libhp-ux.a(hptt0.o) /usr/conf/lib/libhp-ux.a(mux2.o) /usr/conf/lib/libhp-ux.a(mux4.o) /usr/conf/lib/libhp-ux.a(mux5.o) /usr/conf/lib/libhp-ux.a(tty_pty.o) /usr/conf/lib/libhp-ux.a(asio0.o) /usr/conf/lib/libhp-ux.a(ttycomn.o) /usr/conf/lib/libhp-ux.a(sastty.o) /usr/conf/lib/libhp-ux.a(func0.o) /usr/conf/master.d/func0 what(1) Output: OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32,v=HP: /usr/conf/lib/libhp-ux.a(tty_tty.o): tty_tty.c $Date: 02/09/20 20:02:41 $Revision: r11ros /11 PATCH_11.00 (PHNE_27788) /usr/conf/lib/libhp-ux.a(hptt0.o): $Source: kern/sio/hptt0.c, hpuxsysio, vvos_rose, ros e0294 $ $Date: 01/01/04 02:05:57 $ $Revision : 1.13.1.8 PATCH_11.04 (PHNE_22827) $ /usr/conf/lib/libhp-ux.a(mux2.o): PATCH_11.00: mux2.o 1.10.118.13 00/03/15 PHNE_212 57 /usr/conf/lib/libhp-ux.a(mux4.o): $Source: kern/sio/mux4.c, hpuxsysio, vvos_rose, rose 0294 $ $Date: 01/09/26 02:05:56 $ $Revision: 1.18 PATCH_11.04 (PHNE_22827) $ /usr/conf/lib/libhp-ux.a(mux5.o): PATCH_11.00: mux5.o 1.6.118.2 98/03/04 PHNE_13801 /usr/conf/lib/libhp-ux.a(tty_pty.o): $Source: kern/sys/tty_pty.c, hpuxsysio, vvos_rose, r ose0299 $ $Date: 03/02/26 23:37:29 $ $Revisi on: 1.30 PATCH_11.04 (PHNE_28654) $ /usr/conf/lib/libhp-ux.a(asio0.o): $Source: kern/wsio/asio0.c, hpuxsysio, vvos_rose, ro se0299 $ $Date: 03/02/26 23:35:32 $ $Revisio n: 1.22 PATCH_11.04 (PHNE_28654) $ /usr/conf/lib/libhp-ux.a(ttycomn.o): PATCH_11.00: ttycomn.o 1.14.106.5 04/15/99 PHNE_1 8272 /usr/conf/lib/libhp-ux.a(sastty.o): $Source: kern/wsio/sastty.c, hpuxsysio, vvos_rose, r ose0294 $ $Date: 99/07/06 15:41:42 $ $Revisi on: 1.5 PATCH_11.04 (PHNE_19121) $ /usr/conf/lib/libhp-ux.a(func0.o): PATCH_11.00: func0.o 2001/11/29 PHNE_25603 /usr/conf/master.d/func0: func0 $Date: 2001/11/29 16:57:37 PATCH_11.00 (PHNE_ 25603) OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: /usr/conf/lib/libhp-ux.a(tty_tty.o): tty_tty.c $Date: 02/09/20 20:02:41 $Revision: r11ros /11 PATCH_11.00 (PHNE_27788) /usr/conf/lib/libhp-ux.a(hptt0.o): $Source: kern/sio/hptt0.c, hpuxsysio, vvos_rose, ros e0294 $ $Date: 01/01/04 02:05:57 $ $Revision : 1.13.1.8 PATCH_11.04 (PHNE_22827) $ /usr/conf/lib/libhp-ux.a(mux2.o): PATCH_11.00: mux2.o 1.10.118.13 00/03/15 PHNE_212 57 /usr/conf/lib/libhp-ux.a(mux4.o): $Source: kern/sio/mux4.c, hpuxsysio, vvos_rose, rose 0294 $ $Date: 01/09/26 02:05:56 $ $Revision: 1.18 PATCH_11.04 (PHNE_22827) $ /usr/conf/lib/libhp-ux.a(mux5.o): PATCH_11.00: mux5.o 1.6.118.2 98/03/04 PHNE_13801 /usr/conf/lib/libhp-ux.a(tty_pty.o): $Source: kern/sys/tty_pty.c, hpuxsysio, vvos_rose, r ose0299 $ $Date: 03/02/26 23:37:29 $ $Revisi on: 1.30 PATCH_11.04 (PHNE_28654) $ /usr/conf/lib/libhp-ux.a(asio0.o): $Source: kern/wsio/asio0.c, hpuxsysio, vvos_rose, ro se0299 $ $Date: 03/02/26 23:35:32 $ $Revisio n: 1.22 PATCH_11.04 (PHNE_28654) $ /usr/conf/lib/libhp-ux.a(ttycomn.o): PATCH_11.00: ttycomn.o 1.14.106.5 04/15/99 PHNE_1 8272 /usr/conf/lib/libhp-ux.a(sastty.o): $Source: kern/wsio/sastty.c, hpuxsysio, vvos_rose, r ose0294 $ $Date: 99/07/06 15:41:42 $ $Revisi on: 1.5 PATCH_11.04 (PHNE_19121) $ /usr/conf/lib/libhp-ux.a(func0.o): PATCH_11.00: func0.o 2001/11/29 PHNE_25603 /usr/conf/master.d/func0: func0 $Date: 2001/11/29 16:57:37 PATCH_11.00 (PHNE_ 25603) cksum(1) Output: OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_32,v=HP: 1713509480 3260 /usr/conf/lib/libhp-ux.a(tty_tty.o) 8619421 43408 /usr/conf/lib/libhp-ux.a(hptt0.o) 4047649630 48460 /usr/conf/lib/libhp-ux.a(mux2.o) 3225289975 39408 /usr/conf/lib/libhp-ux.a(mux4.o) 1546806871 2464 /usr/conf/lib/libhp-ux.a(mux5.o) 2128820625 30872 /usr/conf/lib/libhp-ux.a(tty_pty.o) 155422298 26240 /usr/conf/lib/libhp-ux.a(asio0.o) 3185036731 14644 /usr/conf/lib/libhp-ux.a(ttycomn.o) 2012166223 18192 /usr/conf/lib/libhp-ux.a(sastty.o) 4018392808 2028 /usr/conf/lib/libhp-ux.a(func0.o) 305695634 719 /usr/conf/master.d/func0 OS-Core.CORE2-KRN,fr=B.11.04,fa=HP-UX_B.11.04_64,v=HP: 2409900588 8760 /usr/conf/lib/libhp-ux.a(tty_tty.o) 1760885786 80312 /usr/conf/lib/libhp-ux.a(hptt0.o) 3102244307 105472 /usr/conf/lib/libhp-ux.a(mux2.o) 4139116146 82072 /usr/conf/lib/libhp-ux.a(mux4.o) 3723030316 5752 /usr/conf/lib/libhp-ux.a(mux5.o) 183826561 75432 /usr/conf/lib/libhp-ux.a(tty_pty.o) 4007005860 49840 /usr/conf/lib/libhp-ux.a(asio0.o) 3738898295 29264 /usr/conf/lib/libhp-ux.a(ttycomn.o) 489127160 38136 /usr/conf/lib/libhp-ux.a(sastty.o) 2617094135 4928 /usr/conf/lib/libhp-ux.a(func0.o) 305695634 719 /usr/conf/master.d/func0 Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: For the rp7400, rp54xx, L-Class with A6696B GSP cards and rp24xx systems, a) The GSP Firmware must be updated to revision B.02.11 or C.02.05 or later. b) Insf(1) patch PHCO_28655 or later should be installed along with this patch. Supersedes: PHNE_19121 PHNE_22827 PHNE_25074 Equivalent Patches: PHNE_27788: s700: 11.00 s800: 11.00 Patch Package Size: 760 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 PHNE_28654 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHNE_28654.depot By default swinstall will archive the original software in /var/adm/sw/save/PHNE_28654. 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 PHNE_28654.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHNE_28654.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHNE_28654.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: If this patch is installed on rp7400, rp54xx, L-Class with A6696B GSP cards or rp24xx systems, then the GSP firmware should be updated to B.02.11 or C.02.05 or later. If removing this patch from rp7400, rp54xx, L-Class with A6696B GSP cards or rp24xx systems, then the firmware should be rolled back to revision earlier than B.02.11 or C.02.05. Additionally, users should delete the stale UPS port (/dev/ttypX) device file(s) and recreate it(them) using the insf(1M) command.