Patch Name: PHNE_15362 Patch Description: s700_800 10.10 ACC 2.22 SNAPlus2 Link (EISA) Patch Creation Date: 98/05/25 Post Date: 98/06/15 Hardware Platforms - OS Releases: s700: 10.10 s800: 10.10 Products: Z7420AA 2.22 Filesets: ACC-SNA.ACC-SNA-KRN Automatic Reboot?: No Status: General Release Critical: Yes PHNE_15362: PANIC PHNE_11221: PANIC Path Name: /hp-ux_patches/s700_800/10.X/PHNE_15362 Symptoms: PHNE_15362: SR #4701366989 / DTS TPO0h01603 ACC/SNA Panics when links are reconfigured PHNE_11221: SR 1653205344 / DTS TPO0h01149: A system panic can occur in the SNA code when used with the ACC/SNA. The panic occurs when the ACC SNA code is processing an open request and the SNA code is reentered with a new request on a different stream. SR 4701353946 / DTS TPO0h01314: A system panic can occur in the ACC SNA driver function accsvphclos(). Here is the stack trace for the panic. panic+0x10 report_trap_or_int_and_panic+0x8c trap+0xc1c $RDB_trap_patch+0x20 strlen+0xc Zc_mlogk+0x2ec close_port+0x19c accsvphclos+0x310 svphclos+0xe SR None: After installing the SNA/ACC product on a new system and before completing the installation by using the SNAplus2 SAM GUI, the customer may invoke mk_kernel for some reason. The mk_kernel will report an error-- cpp: "snaacc_space.h", line 35: error 4036: Can't open include file 'snaacc_to ol.h'. *** Error exit code 1". Defect Description: PHNE_15362: SR #4701366989 / DTS TPO0h01603 Data page fault in zkread when links are reconfigured with the following trace Stack trace from the first crash event: stack trace for event 0 crash event was a panic FUNC PC PSP FMP SSP panic+0x10 0.0x1ea1c0 0.0'0060f750 0.0'0060f770 report_trap_or_int_and_panic+0x8c 0.0x1c23e4 0.0'0060f6d0 0.0'0060f730 interrupt+0x508 0.0x1c2eb8 0.0'0060f650 0.0'0060f6b0 $ihndlr_rtn+0x0 0.0x21408 0.0'0060f650 0.0'0060f630 zkread+0x34 0.0x5cbbc8 0.0'0060f160 0.0'0060f630 accsvph_zkread_event+0x124 0.0x5c616c 0.0'0060ee60 0.0'0060f140 Zc_qwakeup+0x40 0.0x39a384 0.0'0060ee20 0.0'0060ee40 nacc0_receive_data+0x19c 0.0x38f960 0.0'0060ed60 0.0'0060ee00 nacc0_pass_rxdata+0x78 0.0x38f66c 0.0'0060eca0 0.0'0060ed40 zkread+0x34 0.0x5cbbc8 0.0'0060f160 0.0'0060f630 accsvph_zkread_event+0x124 0.0x5c616c 0.0'0060ee60 0.0'0060f140 Zc_qwakeup+0x40 0.0x39a384 0.0'0060ee20 0.0'0060ee40 nacc0_receive_data+0x19c 0.0x38f960 0.0'0060ed60 0.0'0060ee00 nacc0_pass_rxdata+0x78 0.0x38f66c 0.0'0060eca0 0.0'0060ed40 nacc0_complete_req+0x129c 0.0x390c3c 0.0'0060eae0 0.0'0060ec80 nacc0_end_io+0x300 0.0x392610 0.0'0060e9e0 0.0'0060eac0 nacc0_int_event+0x258 0.0x395560 0.0'0060e920 0.0'0060e9c0 nacc0+0x8a0 0.0x396dac 0.0'0060e820 0.0'0060e900 up_send_msg+0x158 0.0x1f6958 0.0'0060e760 0.0'0060e800 generic_io_send+0x1fc 0.0xb76ac 0.0'0060e6a0 0.0'0060e740 io_send+0x54 0.0xb744c 0.0'0060e620 0.0'0060e680 int_direct+0x6c 0.0xb70c4 0.0'0060e5a0 0.0'0060e600 mp_ext_interrupt+0x280 0.0x1c2848 0.0'0060e4e0 0.0'0060e580 $RDB_int_patch+0x58 0.0x213fc 0.0'0060e4e0 0.0'0060e4c0 idle+0x330 0.0xb4320 0.0'010c2030 0.0'0060e4c0 PHNE_11221: SR 1653205344 / DTS TPO0h01149: The ACC SNA driver routine accsvphopen() calls an ACC function to configure the port. The port configuration function calls sleep() while waiting for a response from the ACC card. This causes the up_io_sema semaphore to be released allowing the streams based SNA code to be reentered leading to the panic. SR 4701353946 / DTS TPO0h01314: The ACC SNA driver function had errors in the parameters for a call to the logging function. A panic would occur when the close routine encountered an error and attempted to log an error message. SR None: The snaacc_space.h file assumed that during an mk_kernel, the "snaacc0" driver would be in the system file. However, it is possible as documented above for an mk_kernel to occur but the snaacc0 driver not be in the kernel. Other SNA/ACC files supporting the snaacc_space.h file had to change also with the fix to the snaacc_space.h file. SR: 4701366989 1653205344 4701353946 Patch Files: /usr/conf/lib/libsnaacc.a /opt/acc/bin/snaacc_tool /usr/conf/space.h.d/snaacc_space.h /usr/conf/acc/snaacc_tool.h what(1) Output: /usr/conf/lib/libsnaacc.a: ACC Rel B.02.22 for B.10.10 PHNE_15362 libsnaacc.a /opt/acc/bin/snaacc_tool: ACC Rel B.02.22 for B.10.10 PHNE_11221 snaacc_tool /usr/conf/space.h.d/snaacc_space.h: None /usr/conf/acc/snaacc_tool.h: None cksum(1) Output: 3049218720 30584 /usr/conf/lib/libsnaacc.a 2921955542 36943 /opt/acc/bin/snaacc_tool 3033370291 2201 /usr/conf/space.h.d/snaacc_space.h 984436407 24320 /usr/conf/acc/snaacc_tool.h Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHNE_11221 Equivalent Patches: None Patch Package Size: 160 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_15362 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHNE_15362.depot 5b. For a homogeneous NFS Diskless cluster run swcluster on the server to install the patch on the server and the clients: swcluster -i -b This will invoke swcluster in the interactive mode and force all clients to be shut down. WARNING: All cluster clients must be shut down prior to the patch installation. Installing the patch while the clients are booted is unsupported and can lead to serious problems. The swcluster command will invoke an swinstall session in which you must specify: alternate root path - default is /export/shared_root/OS_700 source depot path - /tmp/PHNE_15362.depot To complete the installation, select the patch by choosing "Actions -> Match What Target Has" and then "Actions -> Install" from the Menubar. 5c. For a heterogeneous NFS Diskless cluster: - run swinstall on the server as in step 5a to install the patch on the cluster server. - run swcluster on the server as in step 5b to install the patch on the cluster clients. By default swinstall will archive the original software in /var/adm/sw/patch/PHNE_15362. 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 PHNE_15362.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/PHNE_15362.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: SUBSYSTEM_SHUT Prior to Patch Installation --------------------------- Before installing this patch, use the following commands as root user in the following order to shutdown the ACC subsystem and kill the ACC daemons: /opt/acc/bin/zmasterd stop /opt/acc/bin/zmasterd kill After Patch Installation ------------------------ This patch fixes a problem in the SNA/ACC driver. Typically, when a driver is patched, an automatic rebuild and reboot is performed during patch installation. However, this is not done with the SNA/ACC driver. This is because SNAplus2 and SNA/ACC products themselves do not do an automatic rebuild and reboot of your system during their installation. You must use the SNAplus2 SAM GUI to configure the particular SNAplus2-related drivers that you want (e.g., SNA/ACC) into the kernel, and the GUI will cause the kernel rebuild and reboot to occur. So because the SNA/ACC driver may or may not be in your kernel at the time that this patch is installed, this patch should not do an automatic kernel rebuild and reboot. So after SNA/ACC patch installation, there are TWO possible scenarios that are applicable to your situation. The difference is whether the SNA/ACC driver is already in your kernel or not. You can verify whether the SNA/ACC driver is in your kernel or not by invoking as root or a regular user: /usr/lbin/sysadm/system_prep -v -s /tmp/system This command extracts a "system" file from the default kernel file, /stand/vmunix. Look at the /tmp/system file and if you see the driver "snaacc0" in this listing, then the SNA/ACC driver is installed in your kernel. Scenarios: 1. The SNA/ACC driver is NOT configured into your kernel. In this case, SNAplus2 currently is not configured to use SNA/ACC. If you want SNAplus2 to use SNA/ACC, follow the directions in the "Multi-Channel SNA/ACC Installation and Configuration Guide" for using the SNAplus2 SAM GUI to allow SNAplus2 to use SNA/ACC. Else if you only wanted to patch the SNA/ACC product but still don't want the SNA/ACC driver in your kernel (meaning that you don't want SNAplus2 to use SNA/ACC), then you are finished with patch installation. 2. The SNA/ACC driver is configured into your kernel. You will need to manually rebuild your kernel and reboot your system. The SNAplus2 SAM GUI cannot be used for this because it will not rebuild your kernel for you since you are not technically adding or deleting a driver from your kernel. So as root user, you will need to do the following to manually rebuild and reboot your kernel: a. Invoke: mk_kernel b. Then invoke: mv /stand/build/vmunix_test /stand/vmunix c. Then: cd / shutdown -r 0 Modifying Your .answ File ------------------------- The ACC SNA driver no longer attempts to dynamically configure wire information for the SNA connection. The configuration must be set up in the ttgen answer file (.answ). Here are sample port and terminal entries. The current .answ file will already have the port entries for the SNA links. One "Term" entry must be added for each SNA SDLC port to work with the new SNA/ACC driver. Port-Definition Port 0:0 RS232 19200 Ext SDLC X1 NRZ Port 0:1 RS232 19200 Ext SDLC X1 NRZ Terminal-Definition Term 0001 0:0 HDLC.FRAME 0000h 0000h 41 0 0 0 0 "SNAPLUS" Term 0002 0:1 HDLC.FRAME 0000h 0000h 41 0 0 0 0 "SNAPLUS" ^^^^ ^^^ ^^^^^ ^^ ZLU ____| | | | | | | mux:port_____| | | | | poll word: use 0000h for | | 2-wire or 0080h for 4-wire__| | | application number, 41 for SNAplus2____| Once you've made these changes to your .answ file, be sure to run your .answ file through ttgen to create a binary (.tmem) version of it. And then bring up the ACC subsystem with it.