Patch Name: PHNE_28588 Patch Description: s700_800 11.00 EISA FDDI B.11.00.0[0-7] cumulative patch Creation Date: 03/04/11 Post Date: 03/05/05 Hardware Platforms - OS Releases: s700: 11.00 s800: 11.00 Products: EISA FDDI B.11.00 B.11.00.01 B.11.00.02 B.11.00.05 B.11.00.07 Filesets: FDDI-EISA.FDDI0-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP FDDI-EISA.FDDI0-KRN,fr=B.11.00.01,fa=HP-UX_B.11.00_32,v=HP FDDI-EISA.FDDI0-KRN,fr=B.11.00.02,fa=HP-UX_B.11.00_32,v=HP FDDI-EISA.FDDI0-KRN,fr=B.11.00.05,fa=HP-UX_B.11.00_32,v=HP FDDI-EISA.FDDI0-KRN,fr=B.11.00.07,fa=HP-UX_B.11.00_32,v=HP FDDI-EISA.FDDI0-RUN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP FDDI-EISA.FDDI0-RUN,fr=B.11.00.01,fa=HP-UX_B.11.00_32,v=HP FDDI-EISA.FDDI0-RUN,fr=B.11.00.02,fa=HP-UX_B.11.00_32,v=HP FDDI-EISA.FDDI0-RUN,fr=B.11.00.05,fa=HP-UX_B.11.00_32,v=HP FDDI-EISA.FDDI0-RUN,fr=B.11.00.07,fa=HP-UX_B.11.00_32,v=HP FDDI-CMD-COM.FDDI-CMD,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP FDDI-CMD-COM.FDDI-CMD,fr=B.11.00.01,fa=HP-UX_B.11.00_32/64,v=HP FDDI-CMD-COM.FDDI-CMD,fr=B.11.00.02,fa=HP-UX_B.11.00_32/64,v=HP FDDI-CMD-COM.FDDI-CMD,fr=B.11.00.05,fa=HP-UX_B.11.00_32/64,v=HP FDDI-CMD-COM.FDDI-CMD,fr=B.11.00.07,fa=HP-UX_B.11.00_32/64,v=HP Automatic Reboot?: Yes Status: General Release Critical: Yes PHNE_28588: OTHER Card hang PHNE_23768: OTHER Card hang. PHNE_21389: PANIC MEMORY_LEAK PHNE_18665: PANIC PHNE_16503: MEMORY_LEAK PHNE_15667: OTHER Card hang. PHNE_13395: CORRUPTION PANIC Data corruption on non-cache-coherent systems using the EISA FDDI link; HPMC panic on transmit hang recovery. Category Tags: defect_repair enhancement general_release critical panic corruption memory_leak Path Name: /hp-ux_patches/s700_800/11.X/PHNE_28588 Symptoms: PHNE_28588: 1. CR JAGae49917 / SR 8606285976 EISA FDDI card hangs under heavy network traffic. 2. CR JAGad80569 / SR 8606211381 If EISA FDDI patch is installed on a system which has any HSC FDDI patch installed, and if swverify(1M) command is run on HSC FDDI patch, errors similar to below are seen. ERROR: File "/usr/bin/fddidump" should have mtime "958457409" but the actual mtime is "958447922". ERROR: File "/usr/bin/fddiif" should have mtime "958457409" but the actual mtime is "958447942". ERROR: File "/usr/bin/fddilink" should have mtime "958457409" but the actual mtime is "958447957". PHNE_23768: 1. CR JAGad50169 / SR 8606180948 EISA FDDI Intermittent card hangs. 2. CR JAGad49344 / SR 8606180122 Q4 debug information is wrong for fddi0_board_t. 3. CR JAGad67618 / SR 8606198428 Setuid bit is set for lanadmin library. PHNE_21389: 1. CR JAGac40038 / SR 8606124655 Potential Memory leak in EISA/HSC FDDI drivers. 2. CR JAGab75863 / SR 8606106601 Multicast addresses not reloaded after a Card reset. 3. CR JAGab75691 / SR 8606106495 Incorrect arguments to fddi3_log_msg. 4. CR JAGab74656 / SR 8606105918 Spinlock held during copyout. 5. CR JAGab74653 / SR 8606105915 Spinunlock done for the lock which was not held by the driver. 6. CR JAGab64949 / SR 5003451047 ER: Add option for fddiif/fddilink utilities to support writing to an output file. PHNE_18665: 1. When the MTU of the EISA FDDI interface is set or reset using the lanadmin(1M) command with -M or -R options respectively, the command completes without any errors but does not set/reset the MTU value for the interface. 2. When lanadmin(1M) is used to set the physical address of the interface to the broadcast address ( 0xffffffffffff ) or to 0 ( 0x000000000000 ), the command succeeds. 3. The system panics with a 'Data page fault' when promiscuous mode is repeatedly turned on and off over the EISA FDDI interface. 4. The system may panic with a 'Data page fault' when the EISA FDDI interface is operating in promiscuous mode with heavy inbound traffic. 5. Aborts/Underruns are observed when frames larger than 3000 bytes are transmitted, with EISA SCSI present on the system. PHNE_16503: 1. The driver fails to disable previously enabled multicast addresses, with error code set to 'EINVAL'. 2. The driver returns garbled data when queried for statistics by applications using the Network Management library calls. 3. lanadmin displays Operation Status as "down(2)" even if the interface is up. 4. System hangs under heavy network traffic over EISA FDDI. PHNE_15667: 1. The EISA FDDI interface may hang after logging the message "Waited for stat2_ine4 but it never came" to syslog. 2. When an attempt is made to change the MAC address of the card using lanadmin(1M), the link is unusable for up to 10 seconds and the MAC address remains unchanged. 3. Under certain conditions, too many informative driver messages are logged to syslog, causing it to overflow. 4. The fddiif utility sometimes reports negative numbers in the statistics. 5. When the locale is set and lanadmin(1M) is used in the interactive mode, the following error message is displayed after a certain number of commands are executed: Cannot open shared library ... PHNE_13395: 1. Inbound data corruption is seen on non-cache-coherent systems when UDP checksum is turned off. This problem is observed readily on D200/D210 systems with EISA FDDI. 2. An underrun is seen on transmission of every frame larger than 3000 bytes when EISA SCSI is present. 3. HPMCs could occur during the execution of the code that autorecovers the interface after transmit hangs. Defect Description: PHNE_28588: 1. CR JAGae49917 / SR 8606285976 The receive engine of the EISA FDDI adapter hangs under heavy network traffic. A manual reset of the adapter, using lanadmin(1M) brings it on-line. Resolution: A mechanism has been introduced in the driver, to detect the adapter hang and an internal reset command shall be issued to the adapter's receive engine. This brings the adapter on-line. 2. CR JAGad80569 / SR 8606211381 EISA FDDI and HSC FDDI products deliver common fddi commands namely, "/usr/bin/fddidump", "/usr/bin/fddiif", and "/usr/bin/fddilink". Hence, if EISA FDDI patch is installed on a system which has any HSC FDDI patch installed, swverify(1M) command generates the error. Resolution: The patch scripts of EISA FDDI are changed to update the IPD entries of these common files using swmodify(1M) command. PHNE_23768: 1. CR JAGad50169 / SR 8606180948 EISA FDDI card hangs due to intensive bus locking done by the EISA 100BT driver. Resolution: EISA FDDI driver is modified to avoid ending up in a unstable state by doing internal resets. 2. CR JAGad49344 / SR 8606180122 The EISA FDDI board structure fddi0_board_t has been changed, but the debug information available does not reflect this change. Resolution: Redefined the fddi0_board_t to fddi0_board_t_2 for debug purpose so that it can override the original definition and reflect the change in data structure. The redefinition is only for debug purpose. 3. CR JAGad67618 / SR 8606198428 lanadmin libraries have their setuid bit set. Setting this bit is not required and may cause problems that are not foreseen. Resolution: The file permissions is changed. PHNE_21389: 1. CR JAGac40038 / SR 8606124655 There were 2 potential problems in the code: a) When a packet is sent up in the receive path, the write pointer of the receive ring is updated with the local write pointer value. This can create a memory leak, if the watchdog runs on another processor when the packet is sent up, and allocs buffers for the receive ring, thus changing the write pointer. b) Similarly, when all the packets have been processed in the receive path, the read and write pointers of the receive ring are updated with the local pointer values. This would again cause a leak if the watchdog had run on another processor and allocated receive buffers. Resolution: The fix is to not update the ring write pointers when processing received packets, since the write pointers do not change in this code path. 2. CR JAGab75863 / SR 8606106601 Multicast addresses are not reloaded after a Card reset. Resolution: All multicast addresses are now reloaded after a card reset. 3. CR JAGab75691 / SR 8606106495 Call to fddi3_log_msg was been made with incorrect number of arguments. Resolution: fddi3_log_msg is been called with correct number of arguments. 4. CR JAGab74656 / SR 8606105918 The driver calls copyout while still holding a spinlock. However design considerations do not allow spinlocks to be held across copyout, since a call to copyout can block. Resolution: The spinlock is now released prior to calling copyout and is locked again after the call. 5. CR JAGab74653 / SR 8606105915 In receive path, when physical promiscuous mode was enabled on the interface the driver used to spinunlock the card-stat lock when the received packets destination address did not match cards MAC address. The card-stat lock which was being unlocked was previously not locked by driver. Resolution: The extra unlock of the spinlock has now been removed. 6. CR JAGab64949 / SR 5003451047 Enhancement request for fddiif/fddilink to support writing to output file. Resolution: Added a '-o' command line option to fddiif/fddilink to support writing the output to a file. PHNE_18665: 1. When lanadmin(1M) is run with the -M option to set the MTU for the interface or with the -R option to reset it to the default value, it sends 'change MTU' ioctl (I/O Control) request to the driver. The driver neither handled this ioctl request nor returned an error. As a result, the lanadmin(1M) command completed without errors, but did not set/reset the MTU. Resolution: The driver has been fixed to handle the ioctl request and hence set/reset the MTU as expected. An error ( EINVAL ) is returned if the driver cannot handle the request. For example, EINVAL is returned when the requested MTU value is too high (>4352) or too low (<100). 2. When the lanadmin(1M) command is used with the -A option to set the physical address of the interface to either 0xffffffffffff or 0x000000000000, the driver did not check for these addresses and set the physical address as such. This is inconsistent with the behavior of other networking cards/drivers, that prevent the physical address being set to the above values. Resolution: The driver has been fixed to return an error (EINVAL) for the above values. 3. When promiscuous mode is turned on/off repeatedly, there was a time window during which the stream which had previously turned promiscuous mode off was closed before the card's promiscuous mode was turned off by the driver. The time window was introduced because of the order in which the driver carried out the steps to disable promiscuous mode on the interface. Due to this time-window, some packets were still sent up to a non-existent stream. This led to a system panic. Resolution: Apart from correcting the order of steps followed to disable promicuous mode, the driver code has been changed to synchronize access to the promiscuous mode related data structures, by using locks. 4. Under heavy network traffic, with the EISA FDDI interface in promiscuous mode, when a call to allocate memory failed, an inbound buffer could be freed more than once, Resolution: The code has been modified to ensure that the inbound buffer will be freed only once. 5. This problem was fixed in an earlier patch by increasing the transmit FIFO watermark on the FSI chip to MTU size. However the FIFO watermark was getting reset to the default value after a card reset. Resolution: The transmit FIFO watermark is now set to MTU size after a card reset also. PHNE_16503: 1. The driver was comparing the canonical form of the address with its non-canonical form stored in its private data structure. Since the comparision failed, the driver always returned an error. 2. The Network Management functions use the DL_HP_GET_MIB_STATS ioctl to communicate with the driver. This ioctl was not supported. 3. The driver was not updating the operation status field in its data structure after the initialization was complete. As a result, incorrect status was displayed by the lanadmin(1M) command. 4. Under heavy network load, the driver fails to enqueue packets due to lack of transmit descriptors. In such a condition, the driver is supposed to free the buffers associated with the packet. This was not being done. As as result, kernel runs out of memory leading to a system hang. PHNE_15667: 1. A software reset mechanism was introduced in the EISA FDDI driver to work around hardware defects in the Motorola FDDI System Interface (FSI) chip. This mechanism did not detect all the circumstances under which the card had to be reset. 2. The MAC address of the card cannot be changed. Users were not prevented from attempting to do this. 3. SMT and other informative messages were incorrectly sent to syslog instead of the NetTL log. 4. Though the statistics are maintained as unsigned integers by the driver, fddiif displayed them as signed values. 5. The EISA FDDI lanadmin(1M) shared library did not close the catalog file after using it. PHNE_13395: 1. A missing cache purge at the time the receive buffer is set up causes stale data to appear in the received packet. The stale data starts at cache line boundaries and can run to multiples of the cache line size. 2. When EISA SCSI is present, system firmware automatically disables BCLK stretching resulting in a slight slowdown of the EISA bus. This, coupled with the limited bandwidth of the EISA bus, restricts the ability of the EISA FDDI card to DMA the packet at the rate needed by the FDDI network. The EISA FDDI card, by default, sets its transmit FIFO watermark to 2 KB, which means that it starts transmission on the FDDI network after it has got 2 KB of data in its FIFO. This patch increases the watermark to the FDDI MTU (4352 bytes). 3. The transmit hang autorecovery code uses the kernel sleep/wakeup syncronization mechanism to await the completion of events. As autorecovery could be initiated with no process context, the above scheme does not work. The fix incorporates an interrupt driven state transition mechanism to complete the recovery. Enhancement: No (superseded patches contained enhancements) PHNE_21389: Enhancements were delivered in this patch or one it has replaced. Please review the Defect Description text for more information. SR: 8606285976 8606211381 8606180948 8606180122 8606198428 8606124655 8606106601 8606106495 8606105918 8606105915 5003451047 5003418723 1653266965 1653248484 5003394668 5003375485 Patch Files: FDDI-EISA.FDDI0-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP: FDDI-EISA.FDDI0-KRN,fr=B.11.00.01,fa=HP-UX_B.11.00_32,v=HP: FDDI-EISA.FDDI0-KRN,fr=B.11.00.02,fa=HP-UX_B.11.00_32,v=HP: FDDI-EISA.FDDI0-KRN,fr=B.11.00.05,fa=HP-UX_B.11.00_32,v=HP: FDDI-EISA.FDDI0-KRN,fr=B.11.00.07,fa=HP-UX_B.11.00_32,v=HP: /usr/conf/lib/libfddi0.a /usr/conf/master.d/fddi0 /usr/conf/lib/fddi0_header.o FDDI-EISA.FDDI0-RUN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP: FDDI-EISA.FDDI0-RUN,fr=B.11.00.01,fa=HP-UX_B.11.00_32,v=HP: FDDI-EISA.FDDI0-RUN,fr=B.11.00.02,fa=HP-UX_B.11.00_32,v=HP: FDDI-EISA.FDDI0-RUN,fr=B.11.00.05,fa=HP-UX_B.11.00_32,v=HP: FDDI-EISA.FDDI0-RUN,fr=B.11.00.07,fa=HP-UX_B.11.00_32,v=HP: /usr/lib/lanadmin/libdsfddi0.1 /usr/lib/lanscan/libpefddi0.1 /usr/lib/libfddifmt0.1 /usr/lib/nls/msg/C/fddi0.cat FDDI-CMD-COM.FDDI-CMD,fr=B.11.00,fa=HP-UX_B.11.00_32/64, v=HP: FDDI-CMD-COM.FDDI-CMD,fr=B.11.00.01,fa=HP-UX_B.11.00_32/64, v=HP: FDDI-CMD-COM.FDDI-CMD,fr=B.11.00.02,fa=HP-UX_B.11.00_32/64, v=HP: FDDI-CMD-COM.FDDI-CMD,fr=B.11.00.05,fa=HP-UX_B.11.00_32/64, v=HP: FDDI-CMD-COM.FDDI-CMD,fr=B.11.00.07,fa=HP-UX_B.11.00_32/64, v=HP: /usr/bin/fddidump /usr/bin/fddiif /usr/bin/fddilink what(1) Output: FDDI-EISA.FDDI0-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP: /usr/conf/lib/libfddi0.a: EISA FDDI fddi0 libfddi0 B.11.00.11 PHNE_28588 $Date : 2003/02/05 11:17:23 $ /usr/conf/master.d/fddi0: None /usr/conf/lib/fddi0_header.o: None FDDI-EISA.FDDI0-RUN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP: /usr/lib/lanadmin/libdsfddi0.1: libdsfddi0.1 EISA FDDI B.11.00.11 PHNE_28588 $Date: 2003/02/06 10:22:00 $ /usr/lib/lanscan/libpefddi0.1: libpefddi0.1 EISA FDDI B.11.00.11 PHNE_28588 $Date: 2003/02/06 10:26:00 $ /usr/lib/libfddifmt0.1: libfddifmt0.1 EISA FDDI B.11.00.11 PHNE_28588 $Date: 2003/02/05 11:15:17 $ /usr/lib/nls/msg/C/fddi0.cat: None FDDI-CMD-COM.FDDI-CMD,fr=B.11.00,fa=HP-UX_B.11.00_32/64, v=HP: /usr/bin/fddidump: fddidump EISA FDDI B.11.00.11 PHNE_28588 $Date: 2003 /02/06 10:12:00 $ /usr/bin/fddiif: fddiif EISA FDDI B.11.00.11 PHNE_28588 $Date: 2003/0 2/06 10:16:00 $ /usr/bin/fddilink: fddilink EISA FDDI B.11.00.11 PHNE_28588 $Date: 2003 /02/06 10:09:00 $ cksum(1) Output: FDDI-EISA.FDDI0-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP: 1975521242 89292 /usr/conf/lib/libfddi0.a 804912669 3764 /usr/conf/master.d/fddi0 2347407737 229472 /usr/conf/lib/fddi0_header.o FDDI-EISA.FDDI0-RUN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP: 249916150 16384 /usr/lib/lanadmin/libdsfddi0.1 2545388852 12288 /usr/lib/lanscan/libpefddi0.1 538892218 20480 /usr/lib/libfddifmt0.1 3091397956 6957 /usr/lib/nls/msg/C/fddi0.cat FDDI-CMD-COM.FDDI-CMD,fr=B.11.00,fa=HP-UX_B.11.00_32/64, v=HP: 233898583 20480 /usr/bin/fddidump 1966979449 20480 /usr/bin/fddiif 891877140 69632 /usr/bin/fddilink Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: If the EISA 100bt product is also installed on the system, then PHNE_23981 or a superseding patch should also be installed for the EISA FDDI Intermittent card hang problem. If the HSC FDDI product is also installed on the system, then PHNE_16504 or a superseding patch should also be installed for the common utilities fddiif, fddilink and fddidump to work over both links. Supersedes: PHNE_13395 PHNE_15667 PHNE_16503 PHNE_18665 PHNE_21389 PHNE_23768 Equivalent Patches: None Patch Package Size: 540 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_28588 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHNE_28588.depot By default swinstall will archive the original software in /var/adm/sw/save/PHNE_28588. 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_28588.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHNE_28588.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHNE_28588.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None