Patch Name: PHNE_25072 Patch Description: s700_800 11.04 (VVOS) PCI 100BT lan cumulative patch Creation Date: 01/10/08 Post Date: 01/10/26 Hardware Platforms - OS Releases: s700: 11.04 s800: 11.04 Products: B5509BA B.11.04.01 B.11.04.02 B.11.04.03 B.11.04.04 B5509BA B.11.04.05 J4253AA B.11.04.01 B.11.04.02 B.11.04.03 B.11.04.04 J4253AA B.11.04.05 A5230A B.11.04.01 B.11.04.02 B.11.04.03 B.11.04.04 A5230A B.11.04.05 Filesets: 100BT-PCI-KRN.100BT-KRN64,fr=B.11.04.01,fa=HP-UX_B.11.04_64,v=HP 100BT-PCI-KRN.100BT-KRN64,fr=B.11.04.02,fa=HP-UX_B.11.04_64,v=HP 100BT-PCI-KRN.100BT-KRN64,fr=B.11.04.03,fa=HP-UX_B.11.04_64,v=HP 100BT-PCI-KRN.100BT-KRN64,fr=B.11.04.04,fa=HP-UX_B.11.04_64,v=HP 100BT-PCI-KRN.100BT-KRN64,fr=B.11.04.05,fa=HP-UX_B.11.04_64,v=HP 100BT-PCI-KRN.100BT-KRN32,fr=B.11.04.01,fa=HP-UX_B.11.04_32,v=HP 100BT-PCI-KRN.100BT-KRN32,fr=B.11.04.02,fa=HP-UX_B.11.04_32,v=HP 100BT-PCI-KRN.100BT-KRN32,fr=B.11.04.03,fa=HP-UX_B.11.04_32,v=HP 100BT-PCI-KRN.100BT-KRN32,fr=B.11.04.04,fa=HP-UX_B.11.04_32,v=HP 100BT-PCI-KRN.100BT-KRN32,fr=B.11.04.05,fa=HP-UX_B.11.04_32,v=HP 100BT-PCI-RUN.100BT-INIT,fr=B.11.04.01,fa=HP-UX_B.11.04_32/64,v=HP 100BT-PCI-RUN.100BT-INIT,fr=B.11.04.02,fa=HP-UX_B.11.04_32/64,v=HP 100BT-PCI-RUN.100BT-INIT,fr=B.11.04.04,fa=HP-UX_B.11.04_32/64,v=HP 100BT-PCI-RUN.100BT-INIT,fr=B.11.04.05,fa=HP-UX_B.11.04_32/64,v=HP 100BT-PCI-RUN.100BT-RUN,fr=B.11.04.01,fa=HP-UX_B.11.04_32/64,v=HP 100BT-PCI-RUN.100BT-RUN,fr=B.11.04.02,fa=HP-UX_B.11.04_32/64,v=HP 100BT-PCI-RUN.100BT-RUN,fr=B.11.04.04,fa=HP-UX_B.11.04_32/64,v=HP 100BT-PCI-RUN.100BT-RUN,fr=B.11.04.05,fa=HP-UX_B.11.04_32/64,v=HP 100BT-PCI-FMT.100BT-FORMAT,fr=B.11.04.01,fa=HP-UX_B.11.04_32/64,v=HP 100BT-PCI-FMT.100BT-FORMAT,fr=B.11.04.02,fa=HP-UX_B.11.04_32/64,v=HP 100BT-PCI-FMT.100BT-FORMAT,fr=B.11.04.04,fa=HP-UX_B.11.04_32/64,v=HP 100BT-PCI-FMT.100BT-FORMAT,fr=B.11.04.05,fa=HP-UX_B.11.04_32/64,v=HP Automatic Reboot?: Yes Status: General Release Critical: Yes PHNE_25072: PANIC MEMORY_LEAK Based on PHNE_24006: PANIC MEMORY_LEAK PHNE_22980: PANIC Based on PHNE_22542: PANIC Based on PHNE_21682: PANIC Category Tags: defect_repair enhancement general_release critical panic memory_leak Path Name: /hp-ux_patches/s700_800/11.X/PHNE_25072 Symptoms: PHNE_25072: Port HP-UX patch PHNE_24006 (PCI 100BT lan) to VVOS Based on HP-UX patch PHNE_24006: 1. System panics with Data Page Fault. 2. Memory leak in btlan3-6 and btlan drivers. 3. Link not coming up if switch is rebooted when speed/duplex value at both ends are set manually. 4. E.R: Keep information about which CPU will handle our interrupts in the ift for debugging. 5. Setuid bit is set for lanadmin library. PHNE_22980: Port HP-UX patch PHNE_22542 (PCI 100BT lan) to VVOS Based on HP-UX patch PHNE_22542: 1. 100BT is randomly missing packets. 2. System panics due to instruction page fault. 3. 'netfmt' on 100BT traces causes SIGSEGV while running HP_APA LAN_MONITOR 4. 100BT card hangs occasionally. The card is unable to receive any frames. Based on HP-UX patch PHNE_21682: 1. lanadmin -A to change MAC address causes panic: wait_for_lock Based on HP-UX patch PHNE_20442: 1. Wrong message is logged in dmesg as "Unable to setup Read / write prefetch lengths". 2. Wrong nettl informative message being logged when speed is changed using lanadmin. 3. lanadmin statistics are not updated & cleared correctly. Based on HP-UX patch PHNE_19079: 1. The inbound octet count displayed by lanadmin is always zero. 2. SAM does not support altering speed (10 or 100Mbps) and duplex mode (half or full) settings on the interface. 3. Applications (including lanadmin) receive 10 for 10Mbps or 100 for 100Mbps for the speed value in the ifSpeed field of the mib structure. lanadmin therefore displays 10 or 100 for the interface (link) speed. 4. 'lanadmin -x [nmid]' display does not indicate whether the card is running in auto-negotiation or manual mode. 5. lanadmin cannot alter the Maximum Transmission Unit (MTU) size value of the interface. 6. Applications do not receive outbound traffic from the interface when they enable promiscuous mode on the interface. 7. Outbound queue length can become negative after clearing net statistics using lanadmin. 8. Collisions are not detected by btlan driver. 9. IP Multicasting problems with 100BT when cable is disconnected and reconnected. 10. The actual link configuration does not reflect what is manually configured in /etc/rc.config.d/hppci100conf. Defect Description: PHNE_25072: Port HP-UX patch PHNE_24006 (PCI 100BT lan) to VVOS Based on HP-UX patch PHNE_24006: 1. JAGad08759: wsio_allocate_shared_memory() call made to allocate and map the transmit descriptor ring seems to have returned NULL. The driver was not checking the return value of the call and was calling bzero to init the memory allocated and this causes a panic. Resolution: The fix is to check the return value of all memory allocation and mapping calls in the driver init function. Stack trace follows: panic+54 report_trap_or_int_and_panic+80 report_trap_or_int_and_panic+0x002c trap+0xDB8 $call_trap+40 bzero_prefetch_sl_method+18 _btlan3_init+8C isc_table_traverse+70 wsio_init_end+10 io_virt_mode_config+0xE8 io_virt_mode_config+0x00ac main+128 $vstart+48 $locore+94 2. JAGad54435: The memory leak in 2k byte bucket is tied to inbound errors and an uninitialized local variable. An uninitialized local variable in the receive path resulted in memory leak sometimes when processing frames received with errors. This variable is required only in the case of normal frames. Resolution: The fix is to check this variable only when processing frames received without errors. 3. JAGad54220: Link not coming up if switch is rebooted when speed/duplex value at both ends are set manually. Driver was clearing all the bits in the BMCR if the speed/duplex value were set manually. So the card was getting set to 10HD and since the other end is also manually set, the link was not coming up. Resolution: Now the driver sets the speed and duplex value in the BMCR based on the value set by the user. 4. JAGad49787: The CPU to which our interrupts are tied is not known currently by looking at the ift structure. Resolution: This information is now stored in the eim field of the ift structure. 5. JAGad66231: btlan* 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 are set in the psf file of a patch. The psf files will not have this bit set now. PHNE_22980: Port HP-UX patch PHNE_22542 (PCI 100BT lan) to VVOS Based on HP-UX patch PHNE_22542: 1. JAGad03897: If 100BT NIC does not have access to an available receive buffer the card will drop packets. Resolution: The driver doubled the number of receive buffers available for the card. 2. JAGad24136: The data portion of the receive buffers was not cacheline aligned. Stack trace follows, A. Original Dump: freeb_pullupmsg+0x2c4 freeb+0xe4c freemsg+0x18 ip_rput_local+0x1b80 ip_rput+0x40c putnext+0x228 hp_dlpi_unitdata_in+0x58 chp_dlpi_mblk_intr_put+0x17c streams_put_release+0x398 hp_dlpi_mblk_intr+0x7c lanc_ether_ics+0x230 btlan_receive_frame+0x550 btlan_isr+0x120 dino_isr+0x184 up_ext_interrupt+0x1e0 ivti_patch_to_nop2+0x0 idle+0x5ac swidle_exit+0x0 B. jaguar: freeb_pullupmsg+0x2c4 freeb+0xe4c soreceive+0x12cc recvit+0x1d4 recvfrom+0x94 syscall+0x758 $syscallrtn+0x0 C. kabalah: freeb+0xb64 freemsg+0x18 lanc_802_2_ics+0x130 btlan_receive_frame+0x590 btlan_isr+0x120 dino_isr+0x184 mp_ext_interrupt+0x378 ivti_patch_to_nop3+0x0 idle+0x598 swidle_exit+0x0 Resolution: The 100BT driver now ensures the receive buffers data is cacheline aligned. 3. JAGad28394: Wrong number of arguments are passed to a function in the formatter. Resolution: The correct number of arguments are now passed to the function in the formatter. 4. JAGad33760: When a very high number of receive errors occur the driver will lose descriptors. Eventually the card will no longer be able to receive frames. Resolution: The driver now handles receiving errors correctly. Based on HP-UX patch PHNE_21682: 1. JAGad05541: The problem is due to waking up a dlpi thread while holding spinlock on ICS. Resolution: The driver now releases spinlock when it wakes up dlpi thread in transmit completion function. Based on HP-UX patch PHNE_20442: 1. JAGab72844: message logged Unable to setup Read / write prefetch lengths. Resolution: Now the message is no more logged. 2. JAGab81818: When speed is changed the informative message logged is not correct. Resolution: A correct message is now logged when speed is changed. 3. JAGab70255: Driver reports bad statistics via netstat and lanadmin. Resolution: The driver is modified to update all the statistics that are supported by the card. Based on HP-UX patch PHNE_19079: 1. The driver did not properly increment the inbound octet count. Resolution: The driver increments the inbound octet count when a a packet is received. 2. No supporting ioctls were implemented in the driver for SAM to use. Resolution: Implemented the required ioctls that the corresponding code in SAM uses. 3. The driver stores 10 for 10Mbps and 100 for 100Mbps in its local mib related data structures. Resolution: Modified driver code to store 10000000 for 10Mbps and 100000000 for 100Mbps in its local mib data structures. 4. The driver did not provide ioctls for lanadmin to use to obtain the information about the mode (autonegotiation or manual) mode in which it was operating. Resolution: The driver implemented the new ioctl for obtaining the above mode information. 5. The driver did not implement ioctl for lanadmin to use to alter the MTU size value on the interface. Resolution: The driver implemented the new ioctl for changing the MTU size value for the interface. 6. The driver did not implement appropriate functionality which would return a copy of the transmitted packet to the upper protocols. Resolution: The driver implemented appropriate functionality which would return a copy of the transmitted packet to the upper protocols. 7. The driver used to erroneously zero the outbound queue length when clear stat command was issued. Later when a queued packet was Transmitted successfully the driver decrements the queue length by one, thus making the counter negative. Resolution: The code is modified, not to zero out the out bound queue length when net statistics clear command is issued. 8. The checking for collisions in the driver was incorrect. The driver used to check for error summary bit only. This causes collision detection to go un-noticed. Resolution: The driver is modified to check for any and all the error conditions that can occur during transmission. 9.IP Multicast addresses were lost when there is a cable disconnect and reconnect. This is due to driver state being still down when the link up state is notified to upper layer. Resolution: The driver state is changed to on line before the link up state is notified to upper layers. 10. The array of link configuration data in /etc/rc.config.d/hppci100conf was non-sequential which the startup script (/sbin/init.d/hppci100) could not handle correctly. Resolution: The startup script (/sbin/init.d/hppci100) is modified to skip over the missing indices in the array and work through all that are provided SR: 8606185018 8606139460 8606185233 8606180566 8606197035 8606164461 8606159065 8606134762 8606154819 8606136416 8606105029 8606109120 8606103478 5003432179 1653286500 4701414177 5003467001 4701430140 5003463430 8606103616 Patch Files: 100BT-PCI-KRN.100BT-KRN64,fr=B.11.04.01,fa=HP-UX_B.11.04_64, v=HP: 100BT-PCI-KRN.100BT-KRN64,fr=B.11.04.02,fa=HP-UX_B.11.04_64, v=HP: 100BT-PCI-KRN.100BT-KRN64,fr=B.11.04.03,fa=HP-UX_B.11.04_64, v=HP: 100BT-PCI-KRN.100BT-KRN64,fr=B.11.04.04,fa=HP-UX_B.11.04_64, v=HP: 100BT-PCI-KRN.100BT-KRN64,fr=B.11.04.05,fa=HP-UX_B.11.04_64, v=HP: /usr/conf/lib/libbtlan5.a /usr/conf/lib/btlan5_dbg.o 100BT-PCI-KRN.100BT-KRN32,fr=B.11.04.01,fa=HP-UX_B.11.04_32, v=HP: 100BT-PCI-KRN.100BT-KRN32,fr=B.11.04.02,fa=HP-UX_B.11.04_32, v=HP: 100BT-PCI-KRN.100BT-KRN32,fr=B.11.04.03,fa=HP-UX_B.11.04_32, v=HP: 100BT-PCI-KRN.100BT-KRN32,fr=B.11.04.04,fa=HP-UX_B.11.04_32, v=HP: 100BT-PCI-KRN.100BT-KRN32,fr=B.11.04.05,fa=HP-UX_B.11.04_32, v=HP: /usr/conf/lib/libbtlan5.a /usr/conf/lib/btlan5_dbg.o 100BT-PCI-RUN.100BT-INIT,fr=B.11.04.01, fa=HP-UX_B.11.04_32/64,v=HP: 100BT-PCI-RUN.100BT-INIT,fr=B.11.04.02, fa=HP-UX_B.11.04_32/64,v=HP: 100BT-PCI-RUN.100BT-INIT,fr=B.11.04.04, fa=HP-UX_B.11.04_32/64,v=HP: 100BT-PCI-RUN.100BT-INIT,fr=B.11.04.05, fa=HP-UX_B.11.04_32/64,v=HP: /usr/sbin/hppci100_init /usr/newconfig/etc/rc.config.d/hppci100conf /sbin/init.d/hppci100 100BT-PCI-RUN.100BT-RUN,fr=B.11.04.01, fa=HP-UX_B.11.04_32/64,v=HP: 100BT-PCI-RUN.100BT-RUN,fr=B.11.04.02, fa=HP-UX_B.11.04_32/64,v=HP: 100BT-PCI-RUN.100BT-RUN,fr=B.11.04.04, fa=HP-UX_B.11.04_32/64,v=HP: 100BT-PCI-RUN.100BT-RUN,fr=B.11.04.05, fa=HP-UX_B.11.04_32/64,v=HP: /usr/lib/nls/msg/C/dsbtlan5.cat /usr/lib/lanadmin/libdsbtlan5.sl 100BT-PCI-FMT.100BT-FORMAT,fr=B.11.04.01, fa=HP-UX_B.11.04_32/64,v=HP: 100BT-PCI-FMT.100BT-FORMAT,fr=B.11.04.02, fa=HP-UX_B.11.04_32/64,v=HP: 100BT-PCI-FMT.100BT-FORMAT,fr=B.11.04.04, fa=HP-UX_B.11.04_32/64,v=HP: 100BT-PCI-FMT.100BT-FORMAT,fr=B.11.04.05, fa=HP-UX_B.11.04_32/64,v=HP: /usr/lib/libfmtbtlan5.sl /usr/lib/nls/msg/C/fmtbtlan5.cat what(1) Output: 100BT-PCI-KRN.100BT-KRN64,fr=B.11.04.01,fa=HP-UX_B.11.04_64, v=HP: /usr/conf/lib/libbtlan5.a: 100BT : btlan5.c PCI 100BT Cleanup PHNE_24006 B.11.0 0.08 $Revision: 1.77 $ $Date: 2001/05/08 15: 00:00 $ /usr/conf/lib/btlan5_dbg.o: None 100BT-PCI-KRN.100BT-KRN32,fr=B.11.04.01,fa=HP-UX_B.11.04_32, v=HP: /usr/conf/lib/libbtlan5.a: 100BT : btlan5.c PCI 100BT Cleanup PHNE_24006 B.11.0 0.08 $Revision: 1.77 $ $Date: 2001/05/08 15: 00:00 $ /usr/conf/lib/btlan5_dbg.o: None 100BT-PCI-RUN.100BT-INIT,fr=B.11.04.01, fa=HP-UX_B.11.04_32/64,v=HP: /usr/sbin/hppci100_init: hppci100_init $Revision: 1.9 $ $Date: 99/08/18 19:4 7:12 $ /usr/newconfig/etc/rc.config.d/hppci100conf: : hppci100conf /sbin/init.d/hppci100: : hppci100 100BT-PCI-RUN.100BT-RUN,fr=B.11.04.01, fa=HP-UX_B.11.04_32/64,v=HP: /usr/lib/nls/msg/C/dsbtlan5.cat: None /usr/lib/lanadmin/libdsbtlan5.sl: libdsbtlan5.sl: Version: B.11.00 $Date: 2000/08/31 1 6:06:18 $ 100BT-PCI-FMT.100BT-FORMAT,fr=B.11.04.01, fa=HP-UX_B.11.04_32/64,v=HP: /usr/lib/libfmtbtlan5.sl: BTLAN5: Version: B.11.00 $Date: 99/11/18 14:36 :48 $ /usr/lib/nls/msg/C/fmtbtlan5.cat: None cksum(1) Output: 100BT-PCI-KRN.100BT-KRN64,fr=B.11.04.01,fa=HP-UX_B.11.04_64, v=HP: 3355192240 122164 /usr/conf/lib/libbtlan5.a 4249052873 227200 /usr/conf/lib/btlan5_dbg.o 100BT-PCI-KRN.100BT-KRN32,fr=B.11.04.01,fa=HP-UX_B.11.04_32, v=HP: 644869619 71268 /usr/conf/lib/libbtlan5.a 2100701390 183312 /usr/conf/lib/btlan5_dbg.o 100BT-PCI-RUN.100BT-INIT,fr=B.11.04.01, fa=HP-UX_B.11.04_32/64,v=HP: 1031270085 6222 /usr/sbin/hppci100_init 4125104724 1288 /usr/newconfig/etc/rc.config.d/hppci100conf 1373922103 8359 /sbin/init.d/hppci100 100BT-PCI-RUN.100BT-RUN,fr=B.11.04.01, fa=HP-UX_B.11.04_32/64,v=HP: 2624246182 3996 /usr/lib/nls/msg/C/dsbtlan5.cat 3518895204 28672 /usr/lib/lanadmin/libdsbtlan5.sl 100BT-PCI-FMT.100BT-FORMAT,fr=B.11.04.01, fa=HP-UX_B.11.04_32/64,v=HP: 526315453 12288 /usr/lib/libfmtbtlan5.sl 2881009131 14621 /usr/lib/nls/msg/C/fmtbtlan5.cat Patch Conflicts: None Patch Dependencies: s700: 11.04: PHNE_21156 PHNE_18560 s800: 11.04: PHNE_21156 PHNE_18560 Hardware Dependencies: None Other Dependencies: None Supersedes: PHNE_22980 Equivalent Patches: PHNE_24006: s700: 11.00 s800: 11.00 Patch Package Size: 720 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_25072 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHNE_25072.depot By default swinstall will archive the original software in /var/adm/sw/save/PHNE_25072. 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/PHNE_25072.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 PHNE_25072.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHNE_25072.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHNE_25072.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: A new version of file /etc/rc.config.d/hppci100conf was delivered as a part of this patch, PHNE_25072 which is /usr/newconfig/etc/rc.config.d/hppci100conf. If you edit /etc/rc.config.d/hppci100conf you may want to merge the files. To set speed and duplex via SAM, users need to install SAM patch: PHCO_22107 ifconfig down/up is needed while changing MTU using lanamdin -[M|R] options.