Patch Name: PHKL_22178 Patch Description: s700 10.20 VME Services Patch Creation Date: 00/08/10 Post Date: 00/08/21 Hardware Platforms - OS Releases: s700: 10.20 Products: N/A Filesets: VME-Services.VME-BPN VME-Services.VME-KRN Automatic Reboot?: Yes Status: General Release Critical: No (superseded patches were critical) PHKL_18872: PANIC Some systems will panic using vme services fifo routines if the Y2K patches are installed. PHKL_16757: PANIC System will panic when buffercache addresses (non-zero space ID) passed to some VME services routines. PHKL_12876: PANIC System will panic on 747/742 if "bpn" driver is configured and "vmebpn_sockets" is not set to 0. Path Name: /hp-ux_patches/s700/10.X/PHKL_22178 Symptoms: PHKL_22178: 1) Calling vme_fifo_copy with a data size greater than 512 bytes results in an incomplete transfer (less than data size). 2) vme_copy returns a value that is 1024 higher than the number of bytes transferred when a VME bus error occurs before completion of the data copy. 3) VME2_USER_COPY ioctl does not return error codes on a failure. PHKL_18872: 1) System panics due to a failure to deliver messages over the backplane via the VME FIFO. Problem occurred after loading a 10.20 Y2K patch bundle. VME FIFO interrupts become permanently disabled and system panic occurs when the FIFO becomes full. PHKL_16757: 1) System will panic when drivers make calls to VME Service routines that use ioflushcache/iopurgecache and kvtophys where buffercache address space is used. 2) vme_create_isc returns a null if_info pointer for the new isc. PHKL_15292: 1) If the system is not rebooted after installing PHKL_12876 the lanscan command does not output any information. 2) File mode access permissions for /usr/lib/lanscan/libpebp0.1 are set incorrectly. PHKL_12876: 1) System will panic on 747/742 if the VME BPN pipes driver is active ("VME Backplane AF_VME_LINK Domain Driver") This driver is configured into the system by SAM when the "bpn" driver is selected and the tunable "vmebpn_sockets" is set to the default state specified by the master file /usr/conf/master.d/vmebpn ( vmebpn_sockets = 1). 2) System will not support a 742/747 diskless boot over backplane networking("VME Backplane TCP/IP driver"). This driver is configured into the system by SAM when the "bpn" driver is selected and the tunable "vmebpn_tcp_ip" is set to the default state specified by the master file /usr/conf/master.d/vmebpn ( vmebpn_tcp_ip = 1 ). 3) System will encounter failures with VME DMA and mapping services on a 744. 4) The lanscan command will not work properly for VME_BPN PHKL_11224: 1) Use of system V shared memory shmat() or file based shared memory mmap() call will cause the vme2_ioctl() command VME2_USER_COPY to fail. 2) vme_dma_setup() may cause VME bus errors if invoked with the VME_USE_IOMAP option active. 3) VME2_USER_COPY transfers the SAME 256k bytes for data transfers larger than 256K. 4) VME_USER_COPY does not limit transfers to MAXPHYS length Defect Description: PHKL_22178: 1) For sizes greater than 512(SAFE_TRANSFER) bytes, the vme_fifo_copy routine breaks the transfer up into 512 byte chunks. The first chunk is transferred correctly. For the next data chunk the fifo address is incorrectly incremented before beginning the transfer. 2) If a VME bus error occurs during a call to vme_copy and and SPU COPY mode is being used, the BUS_FLAG doesn't get masked off from the vme_priv_copy return status. This results in 1024 being added to the vme_mod_copy return status, which is supposed to be returning the number of bytes transferred. 3) When the vme2_ioctl is called with the VME2_USER_COPY option, it calls the vme_user_copy routine. This routine calls the physio system call, which eventually calls the strategy routine, vme_uc_strategy to do the tranfer. If the strategy routine fails the error codes are passed to physio via the buf structure. The physio routine pulls the return status out of the buf structure and returns it to vme_user_copy. Instead of returning the failure code to it's caller, vme_user_copy was returning the residual byte count obtained from the uio structure. PHKL_18872: 1) Upon returning from the VME FIFO interrupt service routine, VME Services won't reenable the FIFO interrupt unless the FIFO is empty. This caused a problem because a FIFO write occurred between the time the ISR emptied the FIFO and the check for empty by VME Services. Removed the check for FIFO empty upon return from Handle_Fifo_Interrupt(). PHKL_16757: 1) VME Services still using obsoleted calls ioflushcache/iopurgecache and kvtophys in area's where buffercache address space is used. 2) vme_create_isc in vme2.c not allocating an if_info structure. PHKL_15292: 1) Patch PHKL_12876 did not specify that a reboot is required after installation. 2) Access control for the libebp0 lanscan library was improperly set by PHKL_12876 postinstall script. PHKL_12876: 1) VME Backplane AF_VME_LINK Domain Driver requires hardware capabilities not supported on a 747/742 and should therefore be disabled in this platform. 2) The "VME Backplane TCP/IP driver" link layer access functionality required by the 742/747 boot protocol (rbootd) was prematurely omitted from this driver for 10.20. It is not supported at 10.30 and beyond. 3) VME services must update the kernel variable niopdir with information from the vme_io_estimate tunable ( plus an additional esimate factor ). On a 744 The VME_SV module is reported in a different location in the HP-UX io tree from a 743, causing this update code not to be run. The consequent shortage of available io pages may cause failures with the DMA and mapping functions. 4) VME BPN does not correctly update the hwift structure necessary for proper functioning of the lanscan command PHKL_11224: 1) VME Services makes invalid assumptions about kernel space id values with respect to shared memory, not exposed until shared memory used in a 10.X environment. 2) Detected at 9.05 ( but problem is present at 10.X). VME Services does not lock VME bus when accessing slave mapper configuration registers in vme_dma_setup(). Failure to do this may cause bus errors. 3) Kernel data pointer not properly updated 4) Incorrect checking for MAXPHYS. SR: 0000000000 Patch Files: /usr/conf/lib/libvme.a /usr/conf/lib/libvmebpn.a /usr/lib/lanscan/libpebp0.1 /usr/lib/nls/msg/C/pebp0.cat what(1) Output: /usr/conf/lib/libvme.a: core_timi.c: Date: 98/12/14 11:30:16 Version: 1. 4 HP-UX B.10.20 vme_cdio.c: Date: 98/12/14 11:30:18 Version: 2.7 HP-UX B.10.20 vme2.c: Date: 00/08/10 09:42:21 Version: 3.2 HP- UX B.10.20 /usr/conf/lib/libvmebpn.a: bp.c: Date: 00/06/29 17:15:17 Version: 3.0 HP-UX B.10.20 bp_lla.c: Date: 00/06/29 17:15:23 Version: 2.10 HP-UX B.10.20 bp_sub.c: Date: 00/06/29 17:15:27 Version: 2.10 HP-UX B.10.20 vli_ioctl.c: Date: 00/06/29 17:14:53 Version: 1. 0 HP-UX B.10.20 vli_main.c: Date: 00/06/29 17:14:49 Version: 1.0 HP-UX B.10.20 vlk_init.c: Date: 00/06/29 17:15:01 Version: 1.4 0 HP-UX B.10.20 vlk_proto.c: Date: 00/06/29 17:15:04 Version: 1. 10 HP-UX B.10.20 vlk_usrreq.c: Date: 00/06/29 17:14:58 Version: 1 .11 HP-UX B.10.20 vtram.c: Date: 00/06/29 17:15:09 Version: 1.0 HP -UX B.10.20 /usr/lib/lanscan/libpebp0.1: None /usr/lib/nls/msg/C/pebp0.cat: None cksum(1) Output: 553354565 169408 /usr/conf/lib/libvme.a 3215514240 472528 /usr/conf/lib/libvmebpn.a 3516435294 12288 /usr/lib/lanscan/libpebp0.1 3231781941 114 /usr/lib/nls/msg/C/pebp0.cat Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHKL_11224 PHKL_12876 PHKL_15292 PHKL_16757 PHKL_18872 Equivalent Patches: None Patch Package Size: 710 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 PHKL_22178 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHKL_22178.depot By default swinstall will archive the original software in /var/adm/sw/patch/PHKL_22178. If you do not wish to retain a copy of the original software, you can create an empty file named /var/adm/sw/patch/PATCH_NOSAVE. WARNING: If this file exists when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. It is recommended that you move the PHKL_22178.text file to /var/adm/sw/patch for future reference. To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHKL_22178.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None