Patch Name: PHNE_29519 Patch Description: s700_800 11.00 Cumulative Mux and Pty Patch Creation Date: 03/10/13 Post Date: 03/11/11 Hardware Platforms - OS Releases: s700: 11.00 s800: 11.00 Products: N/A Filesets: OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP Automatic Reboot?: Yes Status: General Release Critical: No (superseded patches were critical) PHNE_27788: PANIC PHNE_27393: PANIC PHNE_25913: PANIC PHNE_25346: HANG PHNE_21257: HANG PHNE_20431: PANIC 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_29519 Symptoms: PHNE_29519: 1. { SR: 8606321246 CR: JAGae83725 } Applications using /dev/tty device might observe degradation in performance. 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 } a)If the system reports the error message "Telnet device drivers missing: No such device", users cannot open a new telnet session. b)If the system reports the error message "Cannot open streams device /dev/ptmx", users cannot open a new rlogin session. 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 PHNE_25913: Panic in hpstreams_select_int(). Race between select() and close(). 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) 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_23930: Enhance the pty() master write to support the O_NONBLOCK option. This change is to prevent ied() from hanging. PHNE_21897: Enhance the system console to work with new (to be released) L-Class and N-Class servers. PHNE_21257: mux2 driver's block mode read, when times out hangs the system. 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. 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_18272: Added GSP console support to the asio0 driver. 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_29519: 1. { SR: 8606321246 CR: JAGae83725 } All Input/Output operations performed by an application on the /dev/tty device are migrated to processor 0 as the corresponding(sy) driver is not multiprocessor safe. This results in application performance degradation. Resolution: The sy driver is made multiprocessor safe. 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) and pts 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 and pts problem. 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. 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. 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. 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_23930: Existing pty() master write did not support the O_NONBLOCK option. 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. 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. 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 boundary limit of available pty devices. 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 interrupt 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_18272: This is an enhancement request to support a new console for a new platform. Resolution: Enhancement. 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_23930: pty() master write supports O_NONBLOCK option. PHNE_21897: This patch delivers support for the L, N Class. SR: 8606212324 5003399733 5003403055 1653255174 4701406538 8606105374 8606107507 8606107058 1653306845 1653298406 8606131476 8606144076 8606186148 8606206183 8606200932 8606263900 8606275701 8606278579 8606321246 Patch Files: OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_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.00,fa=HP-UX_B.11.00_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.00,fa=HP-UX_B.11.00_32,v=HP: /usr/conf/lib/libhp-ux.a(tty_tty.o): tty_tty.c $Date: 03/08/07 20:02:41 $Revision: r11ros /11 PATCH_11.00 (PHNE_29519) /usr/conf/lib/libhp-ux.a(asio0.o): PATCH_11.00: asio0.o 1.10.118.22 09/20/01 PHNE_273 93 /usr/conf/lib/libhp-ux.a(hptt0.o): PATCH_11.00: hptt0.o 1.12.118.12 99/11/18 PHNE_20 431 /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): PATCH_11.00: mux4.o 1.8.118.6 98/03/04 PHNE_13801 /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(sastty.o): PATCH_11.00: sastty.o 1.1.118.6 04/15/99 PHNE_18 272 /usr/conf/lib/libhp-ux.a(tty_pty.o): tty_pty.c $Date: 2002/08/29 17:43:39 $Revision: r11r os/3 PATCH_11.00 (PHNE_27788) /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(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.00,fa=HP-UX_B.11.00_64,v=HP: /usr/conf/lib/libhp-ux.a(tty_tty.o): tty_tty.c $Date: 03/08/07 20:02:41 $Revision: r11ros /11 PATCH_11.00 (PHNE_29519) /usr/conf/lib/libhp-ux.a(asio0.o): PATCH_11.00: asio0.o 1.10.118.22 09/20/01 PHNE_273 93 /usr/conf/lib/libhp-ux.a(hptt0.o): PATCH_11.00: hptt0.o 1.12.118.12 99/11/18 PHNE_20 431 /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): PATCH_11.00: mux4.o 1.8.118.6 98/03/04 PHNE_13801 /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(sastty.o): PATCH_11.00: sastty.o 1.1.118.6 04/15/99 PHNE_18 272 /usr/conf/lib/libhp-ux.a(tty_pty.o): tty_pty.c $Date: 2002/08/29 17:43:39 $Revision: r11r os/3 PATCH_11.00 (PHNE_27788) /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(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.00,fa=HP-UX_B.11.00_32,v=HP: 2548837985 3296 /usr/conf/lib/libhp-ux.a(tty_tty.o) 121083869 25584 /usr/conf/lib/libhp-ux.a(asio0.o) 3843065860 44528 /usr/conf/lib/libhp-ux.a(hptt0.o) 2379069232 48928 /usr/conf/lib/libhp-ux.a(mux2.o) 2250921814 39380 /usr/conf/lib/libhp-ux.a(mux4.o) 802086535 2464 /usr/conf/lib/libhp-ux.a(mux5.o) 780187552 18200 /usr/conf/lib/libhp-ux.a(sastty.o) 3340470281 25144 /usr/conf/lib/libhp-ux.a(tty_pty.o) 1549866544 14472 /usr/conf/lib/libhp-ux.a(ttycomn.o) 2577780923 2052 /usr/conf/lib/libhp-ux.a(func0.o) 305695634 719 /usr/conf/master.d/func0 OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP: 4205072063 8776 /usr/conf/lib/libhp-ux.a(tty_tty.o) 753023763 48880 /usr/conf/lib/libhp-ux.a(asio0.o) 2250103047 80656 /usr/conf/lib/libhp-ux.a(hptt0.o) 2337968314 105664 /usr/conf/lib/libhp-ux.a(mux2.o) 742439636 82024 /usr/conf/lib/libhp-ux.a(mux4.o) 3723030316 5752 /usr/conf/lib/libhp-ux.a(mux5.o) 2154821199 38120 /usr/conf/lib/libhp-ux.a(sastty.o) 1656624940 61864 /usr/conf/lib/libhp-ux.a(tty_pty.o) 600510415 29120 /usr/conf/lib/libhp-ux.a(ttycomn.o) 3457529368 4952 /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_27370 or later should be installed along with this patch. Supersedes: PHNE_13801 PHNE_18272 PHNE_20150 PHNE_20431 PHNE_21257 PHNE_21897 PHNE_23930 PHNE_25346 PHNE_25603 PHNE_25913 PHNE_27393 PHNE_27788 Equivalent Patches: None Patch Package Size: 340 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_29519 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHNE_29519.depot By default swinstall will archive the original software in /var/adm/sw/save/PHNE_29519. 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_29519.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHNE_29519.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHNE_29519.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: If patch PHNE_27393 or any of its superseding patches up this patch are 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 and all patches that it supersedes up to and including PHNE_27393 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.