OpenVMS AXPSYS07_061 Alpha V6.1 System ECO Summary
Copyright (c) Digital Equipment Corporation 1995. All rights reserved.
PRODUCT: OpenVMS Alpha
COMPONENT: System (SYSTEM_SYNCHRONIZATION_MIN)
SOURCE: Digital Equipment Corporation
ECO INFORMATION:
ECO Kit Name: AXPSYS07_061
ECO Kits Superseded by This ECO Kit: None
ECO Kit Approximate Size: 270 Blocks
Kit Applies To: OpenVMS Alpha V6.1, V6.1-1H1, V6.1-1H2
System Reboot Necessary: Yes
ECO KIT SUMMARY:
An ECO kit exists for SYSTEM_SYNCHRONIZATION_MIN.EXE on OpenVMS Alpha
V6.1, V6.1-1H1, and V6.1-1H2. This kit addresses the following
problem:
o Drivers written in C are unable to release acquired spinlocks
with the supplied interface macros. The routine call actually
happens, but because no code routine was linked when the execlet
was loaded, the only action that occurs is the return of an error
status. This leaves the previously locked devicelock in
acquisition state with no hope of release.
The following code example exhibits the problem:
#DEFINE device_unlock(lockaddr, newipl, restore)
{
EXTERN SMP smp$gl_flags;
IF(smp$gl_flags.smp$v_enabled)
IF(restore == SMP_RELEASE)
smp_std$releasel( lockaddr );
ELSE
smp_std$restorel( lockaddr );
}
When this macro is used on a multiple CPU system with the system
parameter "MULTIPROCESSING" set to "3" the code will go into
smp_std$restorel and do a:
LDx
LDx
RET
INSTALLATION NOTES:
In order for the corrections in this kit to take effect, the system
must be rebooted. If the system is a member of a VMScluster, the
entire cluster should be rebooted.
This patch can be found at any of these sites:
Colorado Site
Georgia Site
Files on this server are as follows:
axpsys07_061_system.README
axpsys07_061.CHKSUM
axpsys07_061.a-dcx_axpexe
|