Patch Name: PHNE_10572 Patch Description: s700 9.01 mux and pty cumulative patch Creation Date: 97/03/14 Post Date: 97/04/08 Hardware Platforms - OS Releases: s700: 9.01 Products: N/A Filesets: KERN-BLD Automatic Reboot?: Yes Status: General Release Critical: Yes PHNE_10572: PANIC PHNE_4079: PANIC PHNE_3641: PANIC PHNE_2061: PANIC PHNE_2661: CORRUPTION This patch fixes data corruption or cross-talk between tty and pty Path Name: /hp-ux_patches/s700/9.X/PHNE_10572 Symptoms: PHNE_10572: Panic: Kernel Stack Overflow. PHNE_5151: When a S700 serial port has a lower priority type open pending on the port while a higher priority type has it opened (say callin vs direct), read(2) hangs indefinitely. PHNE_5070: Writes are returned with EIO when the port has lower priority type opens pending on the port. Multiple close/opens of a controlling terminal can cause the SIGHUP signal to not be delivered. PHNE_4079: Both the SELECT call and READ call will return when the tty is set with MIN=0 and VTIME>0, in the case 2. The select call or the read call should not complete if CTRL S and CTRL Q keys are pressed to force an XOFF and XON. When a process rapidly opens and closes an RS-232 device file, the timeout table will overflow and panic the system. PHNE_3641: When a port is configured to use RTS/CTS handshaking, data is still transmitted when CTS is low. This usually occurs after outbound data has been flushed or an XOFF and XON is received when CTS is low. Data received with CREAD off is not discarded when CREAD is turned back on. System panic in pffasttimo() when attempting to access the "domains" linked list. This occurs when the canonb buffer overflows and overwrites the data. PHNE_3139: The DTR line behaves incorrectly, after logging in on a modem connection and leaving a process running in the background and then manually disconnecting. DTR goes low when the background process terminates and never gets set again. PHNE_3131: A system hang occurs when a processes is writing to a slave pty and the baud rate changes to undefined value. On multi- processor systems, all processors but one are blocked trying to acquire the SPL_LOCK or SPINLOCK.The remaining processor or the only processor on a single processor system is running someware under ttwrite() and usually in a sleep() or wakeup() call. PHNE_3054: System locks up if a break, or anything else is received by the RS-232 hardware before the driver's initialization routine is called by the kernel during bootup. PHNE_3013: Fix for performance increase of mux ioctl calls PHNE_2968: Read select() returns true and asynchronous notification broken when VMIN/VTIME = 0 and no data to read. PHNE_2850: System locks up when trying to dialout a second time useing cu ,uucp or Kermit with a modem. PHNE_2661: tab3 option of stty on 9.0 8xx and 7xx serial ports produces garbage due to buffer overrun. Fix for garbled tty and pty data, or cross-talk between tty and pty data,and the trap 15 panic out of compute_delct() PHNE_2061: Window for interrupt causing a NULL pointer dereference causing a TRAP 15 (Data Segmentation Fault) panic. Read select() and reads behave incorrectly when input modes are changed between canonical and raw. Getty fails to cycle baud rates when BREAK key is pressed during login. PHNE_2029: Close of pty may hang if message arrives after master has closed, the pty will gets into a state where the close will hang, and the process can not be killed. Defect Description: PHNE_10572: Panic: Kernel Stack Overflow after many nested interrupts. This defect does not exist in releases after and including 10.00. PHNE_5151: When a S700 serial port has a lower priority type open pending on the port while a higher priority type has it opened (say callin vs direct), read(2) hangs indefinitely. PHNE_5070: Writes are returned with EIO when the port has lower priority type opens pending on the port. Multiple close/opens of a controlling terminal can cause the SIGHUP signal to not be delivered. PHNE_4079: Both the SELECT call and READ call will return when the tty is set with MIN=0 and VTIME>0, in the case 2. The select call or the read call should not complete if CTRL S and CTRL Q keys are pressed to force an XOFF and XON. When a process rapidly opens and closes an RS-232 device file, the timeout table will overflow and panic the system. PHNE_3641: When a port is configured to use RTS/CTS handshaking, data is still transmitted when CTS is low. This usually occurs after outbound data has been flushed or an XOFF and XON is received when CTS is low. Data received with CREAD off is not discarded when CREAD is turned back on. System panic in pffasttimo() when attempting to access the "domains" linked list. This occurs when the canonb buffer overflows and overwrites the data. PHNE_3139: The DTR line behaves incorrectly, after logging in on a modem connection and leaving a process running in the background and then manually disconnecting. DTR goes low when the background process terminates and never gets set again. PHNE_3131: A system hang occurs when a processes is writing to a slave pty and the baud rate changes to undefined value. On multi- processor systems, all processors but one are blocked trying to acquire the SPL_LOCK or SPINLOCK.The remaining processor or the only processor on a single processor system is running someware under ttwrite() and usually in a sleep() or wakeup() call. PHNE_3054: System locks up if a break, or anything else is received by the RS-232 hardware before the driver's initialization routine is called by the kernel during bootup. PHNE_3013: Fix for performance increase of mux ioctl calls PHNE_2968: Read select() returns true and asynchronous notification broken when VMIN/VTIME = 0 and no data to read. PHNE_2850: System locks up when trying to dialout a second time useing cu ,uucp or Kermit with a modem. PHNE_2661: tab3 option of stty on 9.0 8xx and 7xx serial ports produces garbage due to buffer overrun. Fix for garbled tty and pty data, or cross-talk between tty and pty data,and the trap 15 panic out of compute_delct() PHNE_2061: Window for interrupt causing a NULL pointer dereference causing a TRAP 15 (Data Segmentation Fault) panic. Read select() and reads behave incorrectly when input modes are changed between canonical and raw. Getty fails to cycle baud rates when BREAK key is pressed during login. Check the .text file or catalog entry for information on the other superseded patches. PHNE_2029: Close of pty may hang if message arrives after master has closed, the pty will gets into a state where the close will hang, and the process can not be killed. SR: 5003361311 4701172320 4701154542 5003092874 4701167684 4701193870 5003119503 5003139519 4701205179 4701187997 5000699280 4701216473 5000700021 1653078659 4701233940 4701230474 4701235929 5003189720 1653118661 1653117887 4701172320 Patch Files: /etc/conf/libhp-ux.a(hptt0.o) /etc/conf/libhp-ux.a(asio0.o) /etc/conf/libhp-ux.a(ttycomn.o) /etc/conf/libhp-ux.a(tty_pty.o) what(1) Output: /etc/conf/libhp-ux.a(asio0.o): PATCH_9.0_9.01: asio0.o 1.3.109.24 95/02/09 PHNE _5151 /etc/conf/libhp-ux.a(hptt0.o): PATCH_9.0_9.01: hptt0.o 1.5.109.32 97/03/14 PHNE _10572 /etc/conf/libhp-ux.a(ttycomn.o): PATCH_9.0_9.01: ttycomn.o 1.3.109.14 95/01/04 PHN E_5070 /etc/conf/libhp-ux.a(tty_pty.o): PATCH_9.0: tty_pty.o 1.5.109.18 93/01/07 sum(1) Output: 44791 30 /etc/conf/libhp-ux.a(asio0.o) 51892 62 /etc/conf/libhp-ux.a(hptt0.o) 24557 26 /etc/conf/libhp-ux.a(ttycomn.o) 47064 34 /etc/conf/libhp-ux.a(tty_pty.o) Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHNE_2029 PHNE_2061 PHNE_2661 PHNE_2850 PHNE_2968 PHNE_3013 PHNE_3054 PHNE_3131 PHNE_3139 PHNE_3641 PHNE_4079 PHNE_5070 PHNE_5151 Equivalent Patches: PHNE_10573: s700: 9.03 9.05 9.07 PHNE_10416: s800: 9.00 9.04 Patch Package Size: 130 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. Copy the patch to your /tmp directory and unshar it: cd /tmp cp patch_source/PHNE_10572 . sh PHNE_10572 3. Become root and run update: /etc/update [-r [kernel_gen_file]] -s \ /tmp/PHNE_10572.updt PHNE_10572 Update moves the original software to /system/PHNE_10572/orig. Keep this file to recover from any potential problems. You should move the .text file to /system/PHNE_10572 for future reference. To put this patch on a magnetic tape and update from the tape drive, use dd: dd if=PHNE_10572.updt of=/dev/rmt/0m bs=2048 Special Installation Instructions: None