**************************** ECO SUMMARY INFORMATION **************************** Release Date: 12-JAN-2004 Kit Name: DEC-AXPVMS-VMS731_DRIVER-V0200--4.PCSI Kit Applies To: OpenVMS ALPHA V7.3-1 Approximate Kit Size: 11280 blocks Installation Rating: Install_1 Reboot Required: Yes - rolling reboot Superseded Kits: VMS731_DRIVER-V0100 Mandatory Kit Dependencies: VMS731_UPDATE-V0200 VMS731_PCSI-V0100 Optional Kit Dependencies: None VMS731_DRIVER-V0200.PCSI-DCX_AXPEXE Checksum: 2044000203 ======================================================================= Hewlett-Packard OpenVMS ECO Cover Letter ======================================================================= ECO NUMBER: VMS731_DRIVER-V0200 PRODUCT: OpenVMS Alpha OPERATING SYSTEM V7.3-1 UPDATE PRODUCT: OpenVMS Alpha OPERATING SYSTEM V7.3-1 1 KIT NAME: VMS731_DRIVER-V0200 2 KIT DESCRIPTION: 2.1 Installation Rating: INSTALL_1 : To be installed by all customers. This installation rating, based upon current CLD information, is provided to serve as a guide to which customers should apply this remedial kit. (Reference attached Disclaimer of Warranty and Limitation of Liability Statement) 2.2 Reboot Requirement: Reboot Required. HP strongly recommends that a reboot is performed immediately after kit installation to avoid system instability. If you have other nodes in your OpenVMS cluster, they must also be rebooted in order to make use of the new image(s). If it is not possible or convenient to reboot the entire cluster at this time, a rolling re-boot may be performed. 2.3 Version(s) of OpenVMS to which this kit may be applied: OpenVMS Alpha V7.3-1 2.4 New functionality or new hardware support provided: No. 3 KITS SUPERSEDED BY THIS KIT: - VMS731_DRIVER-V0100 4 KIT DEPENDENCIES: 4.1 The following remedial kit(s), or later, must be installed BEFORE installation of this, or any required kit: - VMS731_PCSI-V0100 - VMS731_UPDATE-V0200 Page 2 4.2 In order to receive all the corrections listed in this kit, the following remedial kits, or later, should also be installed: - None 5 FILES PATCHED OR REPLACED: o [SYSLIB]ALPHA_SDA$SHARE.EXE (new image) Image Identification Information image name: "ALPHA_SDA$SHARE" image file identification: "X-2" image file build identification: "X9TD-0060030013" link date/time: 18-SEP-2003 08:38:52.40 linker identification: "A11-50" Overall Image Checksum: 148FA56B o [SYSLIB]PE$SDA.EXE (new image) Image Identification Information image name: "PE$SDA" image file identification: "X-9A1" image file build identification: "0060030004" link date/time: 13-MAY-2003 16:53:20.45 linker identification: "A11-50" Overall Image Checksum: 295840C1 o [SYSEXE]SCACP.EXE (new image) Image Identification Information image name: "SCACP" image file identification: "X-20" image file build identification: "X9EC-0060030004" link date/time: 13-MAY-2003 16:53:18.18 linker identification: "A11-50" Overall Image Checksum: 6979E364 o [SYSLIB]SDA$SHARE.EXE (new image) Image Identification Information image name: "SDA$SHARE" image file identification: "X-2" image file build identification: "X9TD-0060030013" link date/time: 18-SEP-2003 08:38:49.83 linker identification: "A11-50" Overall Image Checksum: 759D3C5D Page 3 o [SYS$LDR]SYS$BASE_IMAGE.EXE (new image) Image Identification Information image name: "SYS$BASE_IMAGE" image file identification: "ALPHA X9TD-R2Y" image file build identification: "X9TD-0060030045" link date/time: 18-SEP-2003 08:38:36.22 linker identification: "A11-50" Overall Image Checksum: 06496509 o [SYS$LDR]SYS$DQDRIVER.EXE (new image) Image Identification Information image name: "SYS$DQDRIVER" image file identification: "X-35A3" image file build identification: "X9TD-0060030012" link date/time: 20-AUG-2003 16:20:53.32 linker identification: "A11-50" Overall Image Checksum: 9FBFC0A0 o [SYS$LDR]SYS$DRDRIVER.EXE (new image) Image Identification Information image name: "SYS$DRDRIVER" image file identification: "X-22A1" image file build identification: "X9TD-0060030012" link date/time: 20-AUG-2003 16:20:49.82 linker identification: "A11-50" Overall Image Checksum: 5E468965 o [SYS$LDR]SYS$DUDRIVER.EXE (new image) Image Identification Information image name: "SYS$DUDRIVER" image file identification: "X-3" image file build identification: "X9TD-0060030012" link date/time: 20-AUG-2003 16:19:57.13 linker identification: "A11-50" Overall Image Checksum: DC3030EC o [SYS$LDR]SYS$DUDRIVER_MON.EXE (new image) Image Identification Information image name: "SYS$DUDRIVER_MON" image file identification: "X-3" image file build identification: "X9TD-0060030012" link date/time: 20-AUG-2003 16:20:01.14 linker identification: "A11-50" Overall Image Checksum: DB698D5F Page 4 o [SYS$LDR]SYS$PCADRIVER.EXE (new image) Image Identification Information image name: "SYS$PCADRIVER" image file identification: "X-3" image file build identification: "X9TD-0060030012" link date/time: 20-AUG-2003 16:20:19.46 linker identification: "A11-50" Overall Image Checksum: 42CE343A o [SYS$LDR]SYS$PEDRIVER.EXE (new image) Image Identification Information image name: "SYS$PEDRIVER" image file identification: "X-3" image file build identification: "X9TD-0060030012" link date/time: 20-AUG-2003 16:20:23.21 linker identification: "A11-50" Overall Image Checksum: D988813B o [SYS$LDR]SYS$PEDRIVER_MON.EXE (new image) Image Identification Information image name: "SYS$PEDRIVER_MON" image file identification: "X-3" image file build identification: "X9TD-0060030012" link date/time: 20-AUG-2003 16:20:27.36 linker identification: "A11-50" Overall Image Checksum: ECA5B534 o [SYS$LDR]SYS$PMDRIVER.EXE (new image) Image Identification Information image name: "SYS$PMDRIVER" image file identification: "X-31" image file build identification: "X9TD-0060030012" link date/time: 20-AUG-2003 16:19:57.58 linker identification: "A11-50" Overall Image Checksum: 59F777EE o [SYS$LDR]SYS$PNDRIVER.EXE (new image) Image Identification Information image name: "SYS$PNDRIVER" image file identification: "X-3" image file build identification: "X9TD-0060030012" link date/time: 20-AUG-2003 16:20:07.70 linker identification: "A11-50" Overall Image Checksum: 826DEEA1 Page 5 o [SYS$LDR]SYS$TUDRIVER.EXE (new image) Image Identification Information image name: "SYS$TUDRIVER" image file identification: "X-3" image file build identification: "X9TD-0060030012" link date/time: 20-AUG-2003 16:20:39.29 linker identification: "A11-50" Overall Image Checksum: B0DF862D o [SYS$LDR]SYS$TUDRIVER.EXE_MON (new image) Image Identification Information image name: "SYS$TUDRIVER_MON" image file identification: "X-3" image file build identification: "X9TD-0060030012" link date/time: 20-AUG-2003 16:20:42.32 linker identification: "A11-50" Overall Image Checksum: 4A8ACD6F o [SYS$LDR]SCSDEF.STB (new file) 6 PROBLEMS ADDRESSED IN THIS KIT 6.1 New problems addressed in the VMS731_DRIVER-V0200 kit 6.1.1 PE$SDA.EXE image in incorrect directory 6.1.1.1 Problem Description: The VMS731_DRIVER-V0100 ECO kit placed the PE$SDA.EXE image in the [SYSHLP] directory. The proper dirrectory for the image is [SYSLIB]. Images Affected: - [SYSLIB]PE$SDA.EXE 6.1.1.2 CLDs, and QARs reporting this problem: 6.1.1.3 CLD(s) None. Page 6 6.1.1.4 QAR(s) None. 6.1.1.5 Problem Analysis: See problem description. 6.1.1.6 Work-arounds: If the VMS731_DRIVER-V0100 kit has been installed, the PE$SDA.EXE image in [SYSHLP] can be renamed to [SYSLIB]. 6.2 New problems addressed in the VMS731_DRIVER-V0100 kit 6.2.1 PMDRIVER FORKTHREAD TQE DOUBLE-INSERT FIX 6.2.1.1 Problem Description: A system hang occurs when using MSPC-disk-serving or TMSCP-tape-serving over a MEMCHAN (Memory Channel) SCS-port. User intervention is required to HALT the system in order to recover. A forced "OPERATOR" crash-dump and analysis will reveal the EXEC looping within the following routines: SYSTEM_PRIMITIVE*.EXE: EXE$SWTIMER_FORK Primary SMP CPU stuck scanning EXE$GL_TQFL TQE-queue; check PCs on CPU-0 stack. SYS$PMDRIVER.EXE: PM$COMQ_RETRY V7.3-1: TQE$L_FPC: SYS$PMDRIVER+13CC0 SDA> FORMAT/TYPE=TQE @EXE$GL_TQFL SDA> FORMAT/TYPE=TQE @. SDA> REPEAT .......... VMS EXE$GL_TQFL TQE-timer-queue will be corrupted, typically with the first TQE linked back to itself: SDA> VAL QUE EXE$GL_TQFL Images Affected: - [SYS$LDR]SYS$PMDRIVER.EXE Page 7 6.2.1.2 CLDs, and QARs reporting this problem: 6.2.1.3 CLD(s) CFS.97083,CFS.97225,CFS.98090,CFS.98928 6.2.1.4 QAR(s) 75-83-734,75-83-993 6.2.1.5 Problem Analysis: A retry mechanism attempts to reschedule servicing of "stalled" SCS-port commands on PMx0: PDT COMQ (cmd. queue). The TQE used for the TQE-stalled retry, in routine FORK_THREAD, is incorrectly synchronized, allowing multiple insertions into VMS system TQE-queue by successively stalled PM commands. 6.2.1.6 Work-arounds: None. 6.2.2 Fix Queue Header initialization 6.2.2.1 Problem Description: SCACP and SCA display a very large command queue length value. Images Affected: - [SYS$LDR]SYS$PEDRIVER.EXE 6.2.2.2 CLDs, and QARs reporting this problem: 6.2.2.3 CLD(s) CFS.93972,70-3-6182 6.2.2.4 QAR(s) None. Page 8 6.2.2.5 Problem Analysis: The virtual circuit command queue length field is erroneously initialized to a very large value. This change points the starting address of code loop that initializes queue headers to the first header in the block of headers instead of the second header. 6.2.2.6 Work-arounds: None. 6.2.3 Virtual Circuit (VC) closes 6.2.3.1 Problem Description: PEDRIVER will close the Virtual Circuit (VC) instead of bugchecking when it receives a loopback packet from another node. Images Affected: - [SYS$LDR]SYS$PEDRIVER.EXE - [SYS$LDR]SYS$PEDRIVER_MON.EXE 6.2.3.2 CLDs, and QARs reporting this problem: 6.2.3.3 CLD(s) None. 6.2.3.4 QAR(s) None. 6.2.3.5 Problem Analysis: Loopback is not supported by PEDRIVER. Local pool corruption that results in a command processing error could cause a loopback packet to be sent to another node, resulting in the receiving node crashing. The command processing code has been enhanced to better detect corrupted commands and handle them if possible, otherwise it will bugcheck to avoid propagating its internal corruption to other nodes. Page 9 6.2.3.6 Work-arounds: None. 6.2.4 Unnecessary VC closures 6.2.4.1 Problem Description: Unnecessary VC closures can occur due to improved detection and handling of a channel that is losing packets at an excessive rate. Images Affected: - [SYS$LDR]SYS$PEDRIVER.EXE - [SYS$LDR]SYS$PEDRIVER_MON.EXE - [SYSHLP]PE$SDA.EXE 6.2.4.2 CLDs, and QARs reporting this problem: 6.2.4.3 CLD(s) None. 6.2.4.4 QAR(s) None. 6.2.4.5 Problem Analysis: In configurations where the VC's round trip time value was quite large, and an equally good channel existed, PEDRIVER could continue to use a channel that was losing packets at a high rate until the VC was closed. This could result in a cluster becoming unstable because the underlying cluster communications were unstable. 6.2.4.6 Work-arounds: None. 6.2.5 Receive checksum errors Page 10 6.2.5.1 Problem Description: The first transmission of a packet, whose source data ended within a few bytes of a page boundary, could be sent with an incorrect checksum. This would cause a low rate of receive checksum errors. Images Affected: - [SYS$LDR]SYS$PEDRIVER.EXE - [SYS$LDR]SYS$PEDRIVER_MON.EXE - [SYSHLP]PE$SDA.EXE 6.2.5.2 CLDs, and QARs reporting this problem: 6.2.5.3 CLD(s) None. 6.2.5.4 QAR(s) None. 6.2.5.5 Problem Analysis: See Problem Description 6.2.5.6 Work-arounds: None. 6.2.6 Improved Load distribution across LAN paths, and reduced connection moves due to load class changes 6.2.6.1 Problem Description: Improved Load distribution across LAN paths, and reduced connection moves due to load class changes Images Affected: - [SYS$LDR]SYS$PEDRIVER.EXE - [SYS$LDR]SYS$PEDRIVER_MON.EXE - [SYSHLP]PE$SDA.EXE Page 11 6.2.6.2 CLDs, and QARs reporting this problem: 6.2.6.3 CLD(s) None. 6.2.6.4 QAR(s) None. 6.2.6.5 Problem Analysis: The measurement of channel delays has been improved. The result is a more uniform load distribution across equally good LAN paths, and less frequent connection moves due to VC load class changes in response to channel delay changes. 6.2.6.6 Work-arounds: None. 6.2.7 Improved diagnostics 6.2.7.1 Problem Description: Internal PEDRIVER trace data collection and trace reporting messages have been enhanced to improve diagnostic tools: o The set of trace points has been expanded to include more useful data when troubleshooting problems and less useful trace points have been deleted. o The message text was revised to be more descriptive, and to permit using the same message for similar events. o The default size of the trace buffers used when system_check is enabled has been increased to 2048 Bytes/data structure. Images Affected: - [SYS$LDR]SYS$PEDRIVER.EXE - [SYS$LDR]SYS$PEDRIVER_MON.EXE - [SYSHLP]PE$SDA.EXE Page 12 6.2.7.2 CLDs, and QARs reporting this problem: 6.2.7.3 CLD(s) None. 6.2.7.4 QAR(s) None. 6.2.7.5 Problem Analysis: See Problem Description 6.2.7.6 Work-arounds: None. 6.2.8 SET VC/NOCHECKSUMMING command not working 6.2.8.1 Problem Description: The SET VC/NOCHECKSUMMING command did not turn off checksumming on a VC if checksumming was enabled by the SET VC /CHECKSUMMING command. With this change the SET VC/NOCHECKSUMMING command works properly Images Affected: - [SYSEXE]SCACP.EXE - [SYSLIB]SDA$SHARE.EXE - [SYS$LDR]SCSDEF.STB 6.2.8.2 CLDs, and QARs reporting this problem: 6.2.8.3 CLD(s) None. 6.2.8.4 QAR(s) None. Page 13 6.2.8.5 Problem Analysis: See Problem Description 6.2.8.6 Work-arounds: None. 6.2.9 SHOW and ANALYZE commands display incorrect information 6.2.9.1 Problem Description: The following commands were displaying incorrect information. For example, the channel buffer size was displaying the negotiated size instead of the currently used size. This change corrects this. Also, timestamps for traced events will now correctly display the time with resolution down to 0.1 uSec. o SHOW LAN o SHOW VC o SHOW CHANNEL o ANALYZE/SYSTEM o ANALYZE/DUMP Images Affected: - [SYSEXE]SCACP.EXE - [SYSLIB]SDA$SHARE.EXE - [SYS$LDR]SCSDEF.STB 6.2.9.2 CLDs, and QARs reporting this problem: 6.2.9.3 CLD(s) None. 6.2.9.4 QAR(s) None. Page 14 6.2.9.5 Problem Analysis: Contents of cells with names similar to the desired cells, but with different contents were being displayed. 6.2.9.6 Work-arounds: None. 6.2.10 Possible Data corruption on MSCP served disks 6.2.10.1 Problem Description: Possible data corruptions can occur during error recovery from cluster communication problems. Images Affected: - [SYS$LDR]SYS$DUDRIVER.EXE - [SYS$LDR]SYS$DUDRIVER_MON.EXE - [SYS$LDR]SYS$TUDRIVER.EXE - [SYS$LDR]SYS$TUDRIVER_MON.EXE 6.2.10.2 CLDs, and QARs reporting this problem: 6.2.10.3 CLD(s) None. 6.2.10.4 QAR(s) 75-83-892 6.2.10.5 Problem Analysis: An attempt was made to move I/O to another (working) path before DUDRIVER is done with the internal disconnect handshake from SCS when DUDRIVER has initialized the disconnect. The current map information, which could still be in use, was lost and overwritten with new map resources on the new unit. This is exacerbated by multipath which can detect the ability to move to a non-DUdriver path and initiate the sequence to move the unit. Page 15 6.2.10.6 Work-arounds: None. 6.2.11 6.2.11.1 Problem Description: After installing the VMS731_EV7-V0100 or VMS731_EV7-V0200 ECO kits, CDRECORD fails when writing to a DS25-based IDE CDROM. Images Affected: - [SYS$LDR]SYS$DQDRIVER.EXE 6.2.11.2 CLDs, and QARs reporting this problem: 6.2.11.3 CLD(s) 70-3-6924 6.2.11.4 QAR(s) 75-13-1083 6.2.11.5 Problem Analysis: Some IDE controller chips experienced problems doing IO DMA in the io$_diagnose function. 6.2.11.6 Work-arounds: None. 6.2.12 Performance Degradation 6.2.12.1 Problem Description: Some applications can experience a performance degradation on OpenVMS V7.3-1, especially for CI accessed MSCP-served disks. Images Affected: - [SYS$LDR]SYS$PCADRIVER.EXE - [SYS$LDR]SYS$PNDRIVER.EXE Page 16 6.2.12.2 CLDs, and QARs reporting this problem: 6.2.12.3 CLD(s) 70-3-7123 6.2.12.4 QAR(s) None. 6.2.12.5 Problem Analysis: CI packet multiple buffering was disabled in V7.3-1 6.2.12.6 Work-arounds: None. 6.2.13 ANAL/DISK DRA0: gives %SYSTEM-F-INTDIV error 6.2.13.1 Problem Description: An ANAL/DISK DRA0: command produces a %SYSTEM-F-INTDIV error on a 36GB Disk. Images Affected: - [SYS$LDR]SYS$DRDRIVER.EXE 6.2.13.2 CLDs, and QARs reporting this problem: 6.2.13.3 CLD(s) 70-3-7123 6.2.13.4 QAR(s) None. 6.2.13.5 Problem Analysis: As disk become larger and larger, the calculations for track sector and cylinder must be changed to accommodate this. Previous to this change, when disk capacity was greater than 67107840 the calculation for cylinders overflowed and the cylinder count was set to 65535. This caused INIT to set the SCB$L_BLKSIZE to 0 when the volume was initialized. When ANAL/DISK was run against the disk, it failed with an %SYSTEM-F-INTDIV error. Page 17 6.2.13.6 Work-arounds: None. 6.2.14 Continuous VC closures 6.2.14.1 Problem Description: Continuous VC closures occur, at intervals of 2.4 minutes, when the only available lan paths between nodes have the following network topology: FDDI NIC-FDDI-Ethernet-FDDI-FDDI NIC Images Affected: - [SYS$LDR]SYS$PEDRIVER.EXE - [SYS$LDR]SYS$PEDRIVER_MON.EXE - [SYSHLP]PE$SDA.EXE 6.2.14.2 CLDs, and QARs reporting this problem: 6.2.14.3 CLD(s) None. 6.2.14.4 QAR(s) None. 6.2.14.5 Problem Analysis: The size probe termination condition was not being detected, for the FDDI-NI-FDDI dumbbell toplogy. This resulted in a size lower than the current size being probed. When the probe succeeded, the probe size being less than the current size resulted in the channel being closed. 6.2.14.6 Work-arounds: None. Page 18 6.2.15 SET TRACE/DEFAULT did not enable tracing for PEDRIVER enabled events 6.2.15.1 Problem Description: SCACP> SET TRACE/DEFAULT did not enable tracing of the same set of events that PEDRIVER enabled when it was initialized. Images Affected: - [SYS$LDR]SYS$PEDRIVER.EXE - [SYS$LDR]SYS$PEDRIVER_MON.EXE - [SYSHLP]PE$SDA.EXE 6.2.15.2 CLDs, and QARs reporting this problem: 6.2.15.3 CLD(s) None. 6.2.15.4 QAR(s) None. 6.2.15.5 Problem Analysis: See Problem Description 6.2.15.6 Work-arounds: None. 6.2.16 SET TRACE/DEFAULT did not enable tracing for PEDRIVER enabled events 6.2.16.1 Problem Description: Sometimes, when burning a CD using CDRECORD, the last data bits would not be burned onto the CD. On some CD drives the CD drive would get lost and stop responding to commands. This was due to DQDRIVER timing out for some CDRECORD commands. The user would always see at least 1 error with the CD drive after using CDrecord: $ SHOW DEVICE DQA0 Device Device Error Volume Free Trans Mnt Name Status Count Label Blocks Count Cnt Page 19 MY$DQA0: Online 1 Images Affected: - [SYS$LDR]SYS$DQDRIVER.EXE 6.2.16.2 CLDs, and QARs reporting this problem: 6.2.16.3 CLD(s) None. 6.2.16.4 QAR(s) None. 6.2.16.5 Problem Analysis: Some CDRECORD commands can take several minutes to complete. The DQDRIVER fixed timeout time of 60 seconds was not enough time to wait for the "CLOSE TRACK/SESSION" command that CDRECORD uses to complete a record onto a CD. When DQDRIVER times out it sends an "ABORT/RESET" command to the CD device. On some CD drives this is recoverable. However, on some drives the last data bits would not be burned onto the CD. On other CD drives the CD drive would get lost and stop responding to commands, until a hard PCI reset occurred. 6.2.16.6 Work-arounds: None. 7 INSTALLATION INSTRUCTIONS: 7.1 Installation Command Install this kit with the POLYCENTER Software installation utility by logging into the SYSTEM account, and typing the following at the DCL prompt: PRODUCT INSTALL VMS731_DRIVER-V0200 /SOURCE=[location of Kit] The kit location may be a tape drive, CD, or a disk directory that contains the kit. Additional help on installing PCSI kits can be found by typing HELP PRODUCT INSTALL at the system prompt Page 20 7.2 Scripting of Answers to Installation Questions During installation, this kit will ask and require user response to several questions. If you wish to automate the installation of this kit and avoid having to provide responses to these questions, you must create a DCL command procedure that includes the following definitions and commands: - $ DEFINE/SYS NO_ASK$BACKUP TRUE - $ DEFINE/SYS NO_ASK$REBOOT TRUE - Add the following qualifiers to the PRODUCT INSTALL command and add that command to the DCL procedure. /PROD=DEC/BASE=AXPVMS/VER=V2.0 - De-assign the logicals assigned For example, a sample command file to install the VMS731_DRIVER-V0100 kit would be: $ $ DEFINE/SYS NO_ASK$BACKUP TRUE $ DEFINE/SYS NO_ASK$REBOOT TRUE $! $ PROD INSTALL VMS731_DRIVER/PROD=DEC/BASE=AXPVMS/VER=V2.0 $! $ DEASSIGN/SYS NO_ASK$BACKUP $ DEASSIGN/SYS NO_ASK$REBOOT $! $ exit 8 COPYRIGHT AND DISCLAIMER: (C) Copyright 2004 Hewlett-Packard Development Company, L.P. Confidential computer software. Valid license from HP and/or its subsidiaries required for possession, use, or copying. Consistent with FAR 12.211 and 12.212, Commercial Computer Software, Computer Software Documentation, and Technical Data for Commercial Items are licensed to the U.S. Government under vendor's standard commercial license. Neither HP nor any of its subsidiaries shall be liable for technical or editorial errors or omissions contained herein. The information in this document is provided "as is" without warranty of any kind and is subject to change without notice. The warranties for HP products are set forth in the express limited warranty statements accompanying such products. Nothing herein should be construed as constituting an additional warranty. Page 21 DISCLAIMER OF WARRANTY AND LIMITATION OF LIABILITY THIS PATCH IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR PARTICULAR PURPOSE, OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED TO THE EXTENT PERMITTED BY APPLICABLE LAW. IN NO EVENT WILL COMPAQ BE LIABLE FOR ANY LOST REVENUE OR PROFIT, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, WITH RESPECT TO ANY PATCH MADE AVAILABLE HERE OR TO THE USE OF SUCH PATCH.