All Patches for PowerMAX 4.1M are:
audit-001 base-003 cnd-001 inet-001 oam-001
base-001 bkrs-001 crosslibs-001 netcmds-001 vpci-001
base-002 cmds-001 egl-001 nsu-001
================================================================================
Concurrent Computer Corporation Software Development
Software Patch Report
Patch Name: audit-001
Date Issued: 12/10/97 09:45:10
Software Package: audit pkg (Version 4.1m)
OS Release: PowerMAX_OS 4.1m
Architectures: moto nh
Related Patches: none
Related SARS: none
Brief Description:
Year 2000 fixes for Auditrpt commands
Problem Description:
1. The auditrptv1, auditrptv4, and auditrptv5 commands:
a. will not accept dates beyond 12/31/99 when using the -h or -s
command line options and giving a date in the form
ddmmhhmmyy.
b. print dates beyond 12/31/99 incorrectly.
Problem Resolution:
1. a. Add code to parse_hour() function to parse dates beyond
12/31/99.
b. Add code to pr_cmn() function to print the year modulo 100.
Object To Be Replaced:
/etc/security/audit/auditrpt/auditrptv1
/etc/security/audit/auditrpt/auditrptv4
/etc/security/audit/auditrpt/auditrptv5
Special Conditions for Installation:
None.
Possible Side Effects:
None.
return to index
================================================================================
Concurrent Computer Corporation Software Development
Software Patch Report
Patch Name: audit-001
Date Issued: 12/10/97 09:45:10
Software Package: audit pkg (Version 4.1m)
OS Release: PowerMAX_OS 4.1m
Architectures: moto nh
Related Patches: none
Related SARS: none
Brief Description:
Year 2000 fixes for Auditrpt commands
Problem Description:
1. The auditrptv1, auditrptv4, and auditrptv5 commands:
a. will not accept dates beyond 12/31/99 when using the -h or -s
command line options and giving a date in the form
ddmmhhmmyy.
b. print dates beyond 12/31/99 incorrectly.
Problem Resolution:
1. a. Add code to parse_hour() function to parse dates beyond
12/31/99.
b. Add code to pr_cmn() function to print the year modulo 100.
Object To Be Replaced:
/etc/security/audit/auditrpt/auditrptv1
/etc/security/audit/auditrpt/auditrptv4
/etc/security/audit/auditrpt/auditrptv5
Special Conditions for Installation:
None.
Possible Side Effects:
None.
return to index
================================================================================
Concurrent Computer Corporation Software Development
Software Patch Report
Patch Name: base-001
Date Issued: 12/10/97 09:48:57
Software Package: base pkg (Version 4.1m)
OS Release: PowerMAX_OS 4.1m
Architectures: moto
Related Patches: none
Related SARS: HM12145
Brief Description:
Corrections for various issues described below.
Problem Description:
1. Original problem was reported that the condor traffic during
boot could cause spurious interrupts on multiprocessor systems.
Subsequent research found that other devices could have similar
interrupt problems on multiprocessor systems.
Actual problem turned out to be overwriting of the interrupt
vector tables by the non-boot processor startup.
2. While a previous patch fixed the problem of being able to issue a
_lwp_setcontext(2) to a target LWP currently blocked in
server_block(2), this fix unknowingly broke the functionality
that a locked rescheduling variable will prevent a LWP from
setting its new context from a _lwp_setcontext(2) call
until it unlocks its rescheduling variable.
3. Problems with spl_manage(3X) and iconnect(3C):
spl_manage(3X) would core dump on NH6800.
spl_manage(3X) would return the wrong previous ipl value on moto.
spl_manage(3X) and spl_request(3X) would not modify the correct
ipl memory location for moto.
On all platforms, the PL_PROBE and PL_XCALL platform independent
ipls were not set to the proper ipl level on spl_manage(3X) calls.
For iconnect(3C) ICON_CONN calls, IC_VERSION3 would not be
accepted as a valid version number.
The thread library version of iconnect(3C) would imporperly return
EINVAL for shared interrupt ic_vector values.
4. Year 2000 issues:
a. The date command does not set the date correctly when using the
mmddhhmmyy format and the desired date is beyond 12/31/99.
b. The lp command incorrectly prints time stamps in the log file if
the stamp is beyond 12/31/99.
c. The passwd command incorrectly prints password aging information
if the date last changed is beyond 12/31/99.
d. The touch command incorrectly sets a file's time stamp when using
the mmddhhmmyy format and the desired date is beyond 12/31/99.
e. The uustat command incorrectly constructs a character string
representation of the current time if the time is beyond
12/31/99.
f. The admin command writes an invalidly formatted delta date if the
date is beyond 12/31/99.
g. The cdc command
i. writes an invalidly formatted change date if the date is
beyond 12/31/99.
ii. dies with a "format error at line ..." message when
encountering a correctly or incorrectly formatted delta date
beyond 12/31/99.
h. The comb command dies with a "format error at line ..." message
when encountering a correctly or incorrectly formatted delta
date beyond 12/31/99.
i. The delta command
i. writes an invalidly formatted delta date if the date is
beyond 12/31/99.
ii. dies with a "format error at line ..." message when
encountering a correctly or incorrectly formatted delta date
beyond 12/31/99.
j. The get command
i. dies with a "format error at line ..." message when
encountering a correctly or incorrectly formatted delta date
beyond 12/31/99.
ii. dies with an "invalid cutoff date" message when given a
cutoff date beyond 12/31/99.
k. The prs command
i. dies with a "format error at line ..." message when
encountering a correctly or incorrectly formatted delta date
beyond 12/31/99.
ii. dies with an "invalid cutoff date" message when given a
cutoff date beyond 12/31/99.
l. The rmdel command dies with a "format error at line ..." message
when encountering a correctly or incorrectly formatted delta date
beyond 12/31/99.
m. The sact command needs to be recompiled due to changes in the
SCCS code.
n. The unget command needs to be recompiled due to changes in the
SCCS code.
o. The getdate() C library function incorrectly converts a date
string into a tm structure when using the %y or the %D masks if
the string represents a date beyond 12/31/99.
p. The strptime() C library function incorrectly converts a date
string into a tm structure when using the %y or the %D masks if
the string represents a date beyond 12/31/99.
q. The uucico command incorrectly constructs a character string
representation of the current time if the time is beyond
12/31/99.
r. The uuxqt command incorrectly constructs a character string
representation of the current time if the time is beyond
12/31/99.
s. The cs connection server incorrectly time stamps a log file
entry if the date is beyond 12/31/99.
t. The errpt command does not reject error log records based upon
their dates if the -e or -s command line options are given a
date beyond 12/31/99.
u. The uptime command (which is really the w command) needs to be
recompiled due to changes in the source code for the w command.
v. The w command incorrectly prints a user's login time if the
time is beyond 12/31/99.
5. XFS may show fragmentation problem with small extent
size filesystem on truncate up of empty file to high value.
XFS keeps contiguous filesystem extents in the defined
filesystem extent size (default 64Kb), writing a file with
large writes may allocate file extents larger than the
filesystem extent size if the contiguous disk space is
available. Increasing the file size to large value with
truncate was preallocating large extent sizes to the file
although the disk space is not allocated until the data
is written. This could cause a problem if the prealloated
extent size was not available.
6. System would occasionally panic at lwp_steal+0x124 with a
kernel-mode address fault.
7. ADAPTER_SLIVER definition was missing from
/usr/include/sys/adapter_vme.h
8. The latest version of LabView, which is heavily multithreaded,
would cause the system to panic with kernel-mode address faults.
9. The hat_icachesync() function was using segment register 12
temporarily to invalidate instruction cache entries for a page
that was being faulted in. It was executing at IPL level PL6.
When an "out-of-context" situation occurs (the incoming page
belongs to a different address space), hat_icachesync()
temporarily:
- saves the current value of segment register 12
- loads segment register 12 with the proper translation
table information
- invalidates the data cache entries for the page
- invalidates the instruction cache entries for the
page
- restores the saved value into segment register 12
It appears that hat_icachesync() was in the middle of
invalidating the instruction cache entries for the page
and had completed invalidating most of the cache lines for
the page (0x6d out of 0x80) when it panic'd trying to
invalidate the entries for a particular page.
10. NCR devices on TurboHAWK global memory boards were not supported
as a boot device.
11. System level tests, powerat and powerio, were failing on TurboHAWK
configurations with boards in slots 4-7.
12. Add keyboard/display console support for the ACT/Technico PMC-8030
SVGA card (Cirrus Logic GD5446) on the PowerHawk 620.
Problem Resolution:
1. Correct the location of the cache initialization logic during
startup and prevent modification of the interrupt vector tables
by non-boot processors.
2. The evt_process() routine now checks for a locked rescheduling
variable before giving the LWP its new context.
3. The kernel now accepts IC_VERSION3 as a valid ICON_CONN
version number. The C and/or thread library now converts
the version 3 platform independent ipl value into the
appropriate platform dependent ipl value before calling the
kernel in this case.
The spl_request()/spl_manage() code now reads and writes
the correct ipl location in memory. spl_manage() now returns
the correct value for the previous ipl.
The probe and xcall ipls were corrected in the appropriate
tables for all platforms.
The thread library iconnect(3C) code no longer attempts to
validate the ic_vector value, since the kernel will do all
the proper interrupt vector validation.
4. Fixes for year 2000 issues:
a. Add code to process dates beyond 12/31/99.
b. Change WriteLogMsg() to print the year modulo 100.
c. Change PRT_AGE() macro to print the year modulo 100.
d. Add code to process dates beyond 12/31/99.
e. i. Change gmt() to print the year modulo 100.
ii. Change gmts() to print the year modulo 100.
f. Change date_ba() to print the year modulo 100.
g. i. Change date_ba() to print the year modulo 100.
ii. Change date_ab() to process dates beyond 12/31/99.
h. Change date_ab() to process dates beyond 12/31/99.
i. i. Change date_ba() to print the year modulo 100.
ii. Change date_ab() to process dates beyond 12/31/99.
j. i. Change date_ab() to process dates beyond 12/31/99.
ii. Change date_ab() to process dates beyond 12/31/99.
k. i. Change date_ab() to process dates beyond 12/31/99.
ii. Change date_ab() to process dates beyond 12/31/99.
l. Change date_ab() to process dates beyond 12/31/99.
m. Recompile sact.
n. Recompile unget.
o. Change parse_fmt() to correctly process dates beyond 12/31/99.
p. Change parse() to correctly process dates beyond 12/31/99.
q. Change gmt() to print the year modulo 100.
r. Change gmt() to print the year modulo 100.
s. Print the year modulo 100.
t. Add code to correctly process dates beyond 12/31/99.
u. Recompile uptime.
v. Change prtat() to print the year modulo 100.
5. Change the allocation policy for truncated up files to use
only the filesystem extent size for prealloacted extents.
6. This occurred because of the fact that we do not use locks
while examining lwps on the dispatch queue in lwp_steal().
Rather than locking, which might impact performance, an
'l_selfptr' field was added to the lwp structure. This field
is a pointer to ourself which will allow us to verify with
some degree of certainty that the lwp we are looking at is
still valid.
7. Added the definition of ADAPTER_SLIVER to
/usr/include/sys/adapter_vme.h
8. This occurred because of a race condition between sq_wakeup()
and usync_timedsetrun(). Basically, if the timer expired
on a block, usync_timedsetrun() would be called to put the
lwp back onto the run queue. If the block was going to get
unblocked because the condition it was waiting on is met,
sq_wakeup() would be called, which would then call lwp_wakeup()
to put the lwp back on the run queue. When this happened at
the same time, these routines would add an lwp to a runqueue twice,
which can be dangerous, and was the source of this problem. The
solution to this was to ensure that only one or the other tried to
add the lwp back to the runqueue.
9. This apparently occurred because an interrupt came in at
a higher IPL and switched us out.
Before changing segment register 12, we will now save the
new value inside of 'hatttp->hattt_segregs[12]'. This allows
the context-switching routines to restore our segment register
12 value when we are switched back in.
10. In common/uts/io/scsi/gd/gd.c - Modified the bus search for the
boot device on TurboHAWK systems to range from PCI_BUS0 to PCI_BUS9.
11. In common/cmd/hwstat/hwstat.c - corrected the index on the array
cpuboards[]. The index was the physical cpu number which increased
to 16 on the TurboHAWK system. The array was dynamically allocated
and was not allowing for that many cpus. This problem prevented the
system level tests from running because the bad cpuboards[] index
was corrupting the cpu flags definitions. cpuflags[] follows
cpuboards[].
12. Changes also fix VT text mode restore problem (PUX 804) that has
existed since the initial release of keyboard/display support for
PowerUX 3.1.
Object To Be Replaced:
/etc/conf/pack.d/bsp2600/Driver.o
/etc/conf/pack.d/isa/Driver.o
/etc/conf/pack.d/kernel/Driver.o
/etc/conf/pack.d/kd/Driver.o
/etc/conf/pack.d/mem/Driver.o
/etc/conf/pack.d/proc/Driver.o
/etc/conf/pack.d/svc/Driver.o
/etc/conf/pack.d/ui/Driver.o
/etc/conf/pack.d/ws/Driver.o
/etc/conf/pack.d/xfs/Driver.o
/usr/lib/libud.a
/usr/lib/libud.so
/usr/lib/libthread.a
/usr/lib/libposix1c.a
/usr/lib/libthread.so
/usr/lib/libposix1c.so
/usr/lib/libc.so.1
/usr/ccs/lib/libc.a
/usr/ccs/lib/libc.so
/usr/ccs/lib/libnc.a
/usr/ccs/lib/libp/libc.a
/usr/bin/date
/usr/bin/hwstat
/usr/bin/lp
/usr/bin/passwd
/usr/bin/touch
/usr/bin/uustat
/usr/ccs/bin/admin
/usr/ccs/bin/cdc
/usr/ccs/bin/comb
/usr/ccs/bin/delta
/usr/ccs/bin/get
/usr/ccs/bin/prs
/usr/ccs/bin/rmdel
/usr/ccs/bin/sact
/usr/ccs/bin/unget
/usr/lib/uucp/uucico
/usr/lib/uucp/uuxqt
/usr/sbin/cs
/usr/sbin/errpt
/usr/ucb/uptime
/usr/ucb/w
/usr/include/sys/adapter_vme.h
/usr/include/sys/vm_mdep.h
/stand/cp1
Special Conditions for Installation:
None.
Possible Side Effects:
None.
return to index
================================================================================
Concurrent Computer Corporation Software Development
Software Patch Report
Patch Name: base-002
Date Issued: 12/10/97 10:12:22
Software Package: base pkg (Version 4.1m)
OS Release: PowerMAX_OS 4.1m
Architectures: nh
Related Patches: none
Related SARS: HM12145, HM12139, HM12261
Brief Description:
Corrections for various issues described below.
Problem Description:
1. On fast Night Hawk platforms, such as the 200Mhz systems,
if a very short user-level interrupt routine is used, it
is possible for the command which resets the highest
active level in the interrupt controller to become confused
as the interrupt controller has not finished activating
that level. This may cause a subsequent kernel panic.
(HM12139)
2. a. Support was lacking in the kernel for I/O devices connected
to the PMC connector on the PowerMAXION global memory cards.
b. Support was lacking in the kernel for secondary VME on
PowerMAXION systems. This is attached to the system via
a PMC controller on the global memory card.
3. Original problem was reported that the condor traffic during
boot could cause spurious interrupts on multiprocessor systems.
Subsequent research found that other devices could have similar
interrupt problems on multiprocessor systems.
Research found that when the problem was occurring, the interrupt
vector table established by the condor and other drivers during
the init routine was being overwritten. It turned out that
starting non-boot processors would re-initialize the interrupt
vector table.
4. While a previous patch fixed the problem of being able to issue a
_lwp_setcontext(2) to a target LWP currently blocked in
server_block(2), this fix unknowingly broke the functionality
that a locked rescheduling variable will prevent a LWP from
setting its new context from a _lwp_setcontext(2) call
until it unlocks its rescheduling variable.
5. Problems with spl_manage(3X) and iconnect(3C):
spl_manage(3X) would core dump on NH6800.
spl_manage(3X) would return the wrong previous ipl value on moto.
spl_manage(3X) and spl_request(3X) would not modify the correct
ipl memory location for moto.
On all platforms, the PL_PROBE and PL_XCALL platform independent
ipls were not set to the proper ipl level on spl_manage(3X) calls.
For iconnect(3C) ICON_CONN calls, IC_VERSION3 would not be
accepted as a valid version number.
The thread library version of iconnect(3C) would improperly
return EINVAL for shared interrupt ic_vector values.
6. Year 2000 issues:
a. The date command does not set the date correctly when using the
mmddhhmmyy format and the desired date is beyond 12/31/99.
b. The lp command incorrectly prints time stamps in the log file if
the stamp is beyond 12/31/99.
c. The passwd command incorrectly prints password aging information
if the date last changed is beyond 12/31/99.
d. The touch command incorrectly sets a file's time stamp when using
the mmddhhmmyy format and the desired date is beyond 12/31/99.
e. The uustat command incorrectly constructs a character string
representation of the current time if the time is beyond
12/31/99.
f. The admin command writes an invalidly formatted delta date if the
date is beyond 12/31/99.
g. The cdc command
i. writes an invalidly formatted change date if the date is
beyond 12/31/99.
ii. dies with a "format error at line ..." message when
encountering a correctly or incorrectly formatted delta date
beyond 12/31/99.
h. The comb command dies with a "format error at line ..." message
when encountering a correctly or incorrectly formatted delta
date beyond 12/31/99.
i. The delta command
i. writes an invalidly formatted delta date if the date is
beyond 12/31/99.
ii. dies with a "format error at line ..." message when
encountering a correctly or incorrectly formatted delta date
beyond 12/31/99.
j. The get command
i. dies with a "format error at line ..." message when
encountering a correctly or incorrectly formatted delta date
beyond 12/31/99.
ii. dies with an "invalid cutoff date" message when given a
cutoff date beyond 12/31/99.
k. The prs command
i. dies with a "format error at line ..." message when
encountering a correctly or incorrectly formatted delta date
beyond 12/31/99.
ii. dies with an "invalid cutoff date" message when given a
cutoff date beyond 12/31/99.
l. The rmdel command dies with a "format error at line ..." message
when encountering a correctly or incorrectly formatted delta date
beyond 12/31/99.
m. The sact command needs to be recompiled due to changes in the
SCCS code.
n. The unget command needs to be recompiled due to changes in the
SCCS code.
o. The getdate() C library function incorrectly converts a date
string into a tm structure when using the %y or the %D masks if
the string represents a date beyond 12/31/99.
p. The strptime() C library function incorrectly converts a date
string into a tm structure when using the %y or the %D masks if
the string represents a date beyond 12/31/99.
q. The uucico command incorrectly constructs a character string
representation of the current time if the time is beyond
12/31/99.
r. The uuxqt command incorrectly constructs a character string
representation of the current time if the time is beyond
12/31/99.
s. The cs connection server incorrectly time stamps a log file
entry if the date is beyond 12/31/99.
t. The errpt command does not reject error log records based upon
their dates if the -e or -s command line options are given a
date beyond 12/31/99.
u. The uptime command (which is really the w command) needs to be
recompiled due to changes in the source code for the w command.
v. The w command incorrectly prints a user's login time if the
time is beyond 12/31/99.
7. XFS may show fragmentation problem with small extent
size filesystem on truncate up of empty file to high value.
XFS keeps contiguous filesystem extents in the defined
filesystem extent size (default 64Kb), writing a file with
large writes may allocate file extents larger then the
filesystem extent size if the contiguous disk space is
available. Increasing the file size to large value with
truncate was preallocating large extent sizes to the file
although the disk space is not allocated until the data
is written. This could cause a problem if the prealloated
extent size was not available.
8. System would occasionally panic at lwp_steal+0x124 with a
kernel-mode address fault.
9. ADAPTER_SLIVER definition was missing from
/usr/include/sys/adapter_vme.h
(HM12145)
10. The latest version of LabView, which is heavily multithreaded,
would cause the system to panic with kernel-mode address faults.
11. The hat_icachesync() function was using segment register 12
temporarily to invalidate instruction cache entries for a page
that was being faulted in. It was executing at IPL level PL6.
When an "out-of-context" situation occurs (the incoming page
belongs to a different address space), hat_icachesync()
temporarily:
- saves the current value of segment register 12
- loads segment register 12 with the proper translation
table information
- invalidates the data cache entries for the page
- invalidates the instruction cache entries for the
page
- restores the saved value into segment register 12
It appears that hat_icachesync() was in the middle of
invalidating the instruction cache entries for the page
and had completed invalidating most of the cache lines for
the page (0x6d out of 0x80) when it panic'd trying to
invalidate the entries for a particular page.
12. Embedded DEC Ethernet and NCR SCSI devices interrupt on multiple
local PCI levels. All local PCI levels must be disabled on the local
interrupt controllers except one.
13. The kernel eti_ioctl() only allows enabling, disabling, arming,
disarming, etc. to the first processor's interrupt controller on
each processor board for TurboHAWK systems. If they were enabled
on the second processor on a board, which may be the case with
round robin assignment, then there is no facility to disable them.
14. The standalone boot program did not support boot devices on
PCI busses on global memory cards.
15. ETI interrupt requests made by powerio tests were being lost.
16. The C library edge trigger interrupt support did not understand
interrupts on boards 4-7.
17. The routine getcpuintmask_nh6800t() did not consider the interrupt
controller for the second processor on a TurboHAWK system.
18. NCR devices on TurboHAWK global memory boards were not supported
as a boot device.
19. PCI busses on TurboHAWK global memory boards were not recognized.
20. The bsp array for nh6800 TurboHAWK did not have the global memory
uart addresses defined.
21. In nh/uts/mem/vm_mdep.h there were no address definitions for PLX
bridges or global memory UARTs.
22. There was no physical address mapping definition for global memory
UARTs 8 and 9 on TurboHAWK systems.
23. UARTs on TurboHAWK global memory boards were not being recognized
and configured.
24. Interval timers on TurboHAWK boards 4-7 were not being synchronized
with the master clock on board 0.
25. System level tests, powerat and powerio, were failing on TurboHAWK
configurations with boards in slots 4-7.
26. The routine badaddr_clear() generates addresses for architectural
registers then writes these registers to clear error conditions.
During register address generation, the board field of the address
was being masked with 0x3. These two bits do not support boards
4-7 in a PowerHAWK or PowerMAXION-8 system.
27. When a secondary VME interrupt went active, the secondary VME handler
on TurboHAWK systems was servicing any of the seven VME levels that
were requesting as defined by the Tundra VME interface. The other
secondary VME levels being serviced were possibly assigned to other
CPUs for handling.
28. The routine in vme_ioinit() which sets up servicing of secondary VME
interrupts was writing the Global Memory UART control register to
enable secondary VME interrupts through the PMC. This register exists
on PowerMAXION systems but not on TurboHAWKs.
29. The following mpadvise() call fails (on TurboHAWK) :
mpadvise(MPA_CPU_VMELEV,MPA_VMELEV_PRIMARY, <levl>, <mask>);
30. The mpadvise(3C) system call fails with EINVAL with the mpadvise
command MPA_CPU_VMELEV on a PowerMAXION 6408 processor.
(HM12261)
31. The secondary VME interrupt service routine (on TurboHAWK) did not
properly handle interrupt levels from local expansion VME.
32. vme_ioinit() was not registering vectors for both local and global
expansion VME interrupt levels.
33. The secondary vme interrupt handler periodically receives spurious
interrupts. That is, an interrupt goes active, however, upon
examination of the Tundra status, no active interrupts are indicated.
34. The address map for secondary I/O VME devices on TurboHAWK is
different from PowerMAXIONs. The Tundra's base and limit addresses
did not allow VME devices in secondary I/O to be addressed.
35. Primary VME 16 address space was not being configured properly
in the Tundra for TurboHAWK systems. The Tundra was not handling
A16 devices in suprevisory mode.
36. The DEC PCI bridge I/O address space conflicted with that of the
DEC Ethernet causing a PCI bus timeout/sysfault. We saw PCI bus
errors when attempting to access the DEC hardware Ethernet address
in SROM.
37. Primary VME levels 1-3 were not being routed from the VME bus through
the Tundra. This prevented VME devices which use these levels
from working/interrupting in Primary VME space.
Problem Resolution:
1. Add a 1 microsecond delay to user-level interrupt handling
after the user level routine is called and just before the
highest active level is reset in the interrupt controller.
2. Add additional logic to the pci, vme and interrupt configuration
routines to support the additional PCI and VME buses.
3. The cache disable was moved to after the vector table is set up
and ensures that bsp_init, which reinitializes the vector table
among other things, is only run for the boot processor.
4. The evt_process() routine now checks for a locked rescheduling
variable before giving the LWP its new context.
5. The kernel now accepts IC_VERSION3 as a valid ICON_CONN
version number. The C and/or thread library now converts
the version 3 platform independent ipl value into the
appropriate platform dependent ipl value before calling the
kernel in this case.
The probe and xcall ipls were corrected in the appropriate
tables for all platforms.
The spl_manage() routine now masks off just the read ipl value
before indexing into the ipl table. Extra bits in the read ipl
value were causing a page fault due to a bad index.
The thread library iconnect(3C) code no longer attempts to
validate the ic_vector value, since the kernel will do all the
proper interrupt vector validation.
6. Fixes for year 2000 issues:
a. Add code to process dates beyond 12/31/99.
b. Change WriteLogMsg() to print the year modulo 100.
c. Change PRT_AGE() macro to print the year modulo 100.
d. Add code to process dates beyond 12/31/99.
e. i. Change gmt() to print the year modulo 100.
ii. Change gmts() to print the year modulo 100.
f. Change date_ba() to print the year modulo 100.
g. i. Change date_ba() to print the year modulo 100.
ii. Change date_ab() to process dates beyond 12/31/99.
h. Change date_ab() to process dates beyond 12/31/99.
i. i. Change date_ba() to print the year modulo 100.
ii. Change date_ab() to process dates beyond 12/31/99.
j. i. Change date_ab() to process dates beyond 12/31/99.
ii. Change date_ab() to process dates beyond 12/31/99.
k. i. Change date_ab() to process dates beyond 12/31/99.
ii. Change date_ab() to process dates beyond 12/31/99.
l. Change date_ab() to process dates beyond 12/31/99.
m. Recompile sact.
n. Recompile unget.
o. Change parse_fmt() to correctly process dates beyond 12/31/99.
p. Change parse() to correctly process dates beyond 12/31/99.
q. Change gmt() to print the year modulo 100.
r. Change gmt() to print the year modulo 100.
s. Print the year modulo 100.
t. Add code to correctly process dates beyond 12/31/99.
u. Recompile uptime.
v. Change prtat() to print the year modulo 100.
7. Change the allocation policy for truncated up files to use
only the filesystem extent size for prealloacted extents.
8. This occurred because of the fact that we do not use locks
while examining lwps on the dispatch queue in lwp_steal().
Rather than locking, which might impact performance, an
'l_selfptr' field was added to the lwp structure. This field
is a pointer to ourself which will allow us to verify with
some degree of certainty that the lwp we are looking at is
still valid.
9. Added the definition of ADAPTER_SLIVER to
/usr/include/sys/adapter_vme.h
10. This occurred because of a race condition between sq_wakeup()
and usync_timedsetrun(). Basically, if the timer expired
on a block, usync_timedsetrun() would be called to put the
lwp back onto the run queue. If the block was going to get
unblocked because the condition it was waiting on is met,
sq_wakeup() would be called, which would then call lwp_wakeup()
to put the lwp back on the run queue. When this happened at
the same time, these routines would add an lwp to a runqueue twice,
which can be dangerous, and was the source of this problem. The
solution to this was to ensure that only one or the other tried to
add the lwp back to the runqueue.
11. This apparently occurred because an interrupt came in at
a higher IPL and switched us out.
Before changing segment register 12, we will now save the
new value inside of 'hatttp->hattt_segregs[12]'. This allows
the context-switching routines to restore our segment register
12 value when we are switched back in.
12. PICPU_LOCVME0_7 through PICPU_LOCVME7_1 default values were changed
to -3, disabled on all cpus. The exception are the 8 tunables (one
for each TurboHAWK board) for VME level 6 / PCI A: PICPU_LOCVME0_6,
PICPU_LOCVME1_6, ...... PICPU_LOCVME7_6. These 8 tunables default
to -1, cpu selected via round-robin algorithm. These VME levels 6 /
PCI A support the DEC Ethernet and NCR SCSI on each of the processor
cards.
13. Changed the eti interrupts so that by default they are disabled on
all controllers on all boards.
14. check_scan_6800P() in nh/standalone/io.c - corrected range checking
for the bus number of PCI busses on TurboHAWK and PowerMAXION
systems. The bus number limitation used to be 0-3. It is now 0-9
for 8 processor boards plus two global memory boards.
In nh/standalone/ncr.c - Modified the standalone ncr driver to
support the 20 ncr controllers on the TurboHAWK system. Ten ncr
controllers are embedded and 10 are supported by PCM cards on
processor and global memory boards.
15. In nh/uts/io/eti/eti.c - eti_request() -- added locking around the
call to write_int_nc(). This synchronizes access to the interrupt
controller registers by the eti driver.
16. In nh/lib/libc/port/gen/eti.c - Expanded the pin_to_level_new[]
table to include edge interrupt definitions for boards 4-7. This
addition supports nh6408 and TurboHAWK systems.
17. nh/uts/svc/bsp6800t/config_ints_p.c - getcpuintmask_nh6800t() -
enhanced the routine for TurboHAWK. If the vector passed to the
routine specifies a shared vector then the routine examines both
processors on the board defined by the shared vector offset. The
mask returned can define either or both processors if the interrupt
controllers for these processors have this vector enabled.
18. In common/uts/io/scsi/gd/gd.c - Modified the bus search for the boot
device on TurboHAWK systems to range from PCI_BUS0 to PCI_BUS9.
19. Expanded console_bus_ids_6800t[] to handle bus numbers 8 and 9.
This was done in support of embedded PCI devices on TurboHAWK global
memory boards.
In nh/uts/scv/boot.h - Changed the marco:
to agree with changes made to console_bus_ids_6800t[]. There are
still 3 bus types but there are now 10 busses per bus type. This
was changed to support BUS_PCI8 and BUS_PCI9, the PCI busses on the
TurboHAWK global memory cards.
In nh/uts/io/bus_f.h - Added definitions for BUS_VME9 and BUS_VME10.
These busses were added to console_bus_ids_6800t[]. Even though
they will probably not be used they were required to make the
console_bus_ids_6800t[] complete.
Corrected bus definitions for BUS_PCI8 and BUS_PCI9 which define the
PCI busses on TurboHAWK global memory boards.
20. In nh/uts/svc/bsp.h - defined the global memory UART addresses in
the bsp array for TurboHAWK.
21. In nh/uts/mem/vm_mdep.h, added definitions for the physical addresses
for the PLX bridges. Also, added definitions for the addresses of
the global memory UART registers.
22. In nh/uts/svc/hardmap.h - added virtual to physical mapping for
global memory UARTS 8 and 9 for TurboHAWK systems.
23. In nh/uts/io/serial/cons/cons.c - modified cn_uartpresent() so that
UARTs on global memory boards of TurboHAWK systems are recognized
and configured.
24. In nh/uts/svc/swtimer.s - Modified reload_swtimer() so that interval
timers are initialized to the epoch on boards 4-7 (if they exist).
25. In common/cmd/hwstat/hwstat.c - corrected the index on the array
cpuboards[]. The index was the physical cpu number which increased
to 16 on the TurboHAWK system. The array was dynamically allocated
and was not allowing for that many cpus. This problem prevented the
system level tests from running because the bad cpuboards[] index
was corrupting the cpu flags definitions. cpuflags[] follows
cpuboards[].
26. Changed the board mask to 0x7 during address generation for
architectural registers on PowerHAWK and PowerMAXION-8 systems.
27. This problem was fixed by forcing the secondary VME handler to service
only the level which was currently active.
28. We suppressed the writing of the GMUCR register to enable secondary
I/O interrupts if the platform is a TruboHAWK.
29. The getcpuint() routine (on TurboHAWK) was doing poor error checking
of its return value. It would do the following:
a. Assign "cpu" to zero intially
b. Do the necessary processing to determine the correct value
of "cpu"
c. Check the value of "cpu" before returning it. If "cpu" was
still zero, then the assumption was that we did not find
what we were looking for.
The problem, of course, is that it is possible that "cpu" equal to
zero can be a valid return code (when we're dealing with cpu zero,
for example). This was corrected by changing the initial assignment
and final check to use a value of negative one instead of zero.
30. The getbuslvl() routine (on Night Hawk 6408) contained a small
semantic error due to a missing "break" statement at the end of
a couple of "case"s of a "switch" statement.
31. svme_intr() was modified to recognize and service both local and
global expansion VME interrupt levels.
32. vme_ioinit() was modified to register interrupt vectors for both local
and global expansion VME levels.
33. We added a global counter, smve_spurious, which is incremented each
time a spurious interrupt occurs. This may prove useful for
debug or evaluation of this problem. Spurious interrupts still occur
but are ignored other than the incrementing of the svme_spurious.
34. Modified the Tundra initialization for TurboHAWK systems to support
the address ranges assigned to secondary VME I/O.
35. The control word for A16 device configuration in the Tundra was
modified to enable supervisory mode.
36. To fix this in 4.1mP we temporarily disabled DEC PCI bridge I/O
address space. This will work because there are currently no
supported devices on the DEC PCI bridge which require I/O space.
The DEC PCI bridge I/O space configuration will be established in
the 4.2 baseline.
37. To fix this, a flag was added to the TurboHAWK pin array which cause
these levels to be properly configured by config_ints_nh6800t().
Object To Be Replaced:
/etc/conf/cf.d/intr.s
/etc/conf/pack.d/bsp6400/Driver.o
/etc/conf/pack.d/bsp6400/space.c
/etc/conf/pack.d/bsp6408/Driver.o
/etc/conf/pack.d/bsp6408/space.c
/etc/conf/pack.d/bsp6800t/Driver.o
/etc/conf/pack.d/bsp6800t/space.c
/etc/conf/pack.d/bspall/Driver.o
/etc/conf/pack.d/bspall/space.c
/etc/conf/pack.d/cons/Driver.o
/etc/conf/pack.d/eti/Driver.o
/etc/conf/pack.d/gd/Driver.o
/etc/conf/pack.d/io/Driver.o
/etc/conf/pack.d/kernel/Driver.o
/etc/conf/pack.d/mem/Driver.o
/etc/conf/pack.d/pci/Driver.o
/etc/conf/pack.d/proc/Driver.o
/etc/conf/pack.d/svc/Driver.o
/etc/conf/pack.d/vme/Driver.o
/etc/conf/pack.d/xfs/Driver.o
/etc/conf/pack.d/ui/Driver.o
/etc/conf/mtune.d/bspall
/stand/boot
/boot
/usr/lib/libud.a
/usr/lib/libud.so
/usr/lib/libthread.a
/usr/lib/libposix1c.a
/usr/lib/libthread.so
/usr/lib/libposix1c.so
/usr/lib/libc.so.1
/usr/ccs/lib/libc.a
/usr/ccs/lib/libc.so
/usr/ccs/lib/libnc.a
/usr/ccs/lib/libp/libc.a
/usr/bin/date
/usr/bin/hwstat
/usr/bin/lp
/usr/bin/passwd
/usr/bin/touch
/usr/bin/uustat
/usr/ccs/bin/admin
/usr/ccs/bin/cdc
/usr/ccs/bin/comb
/usr/ccs/bin/delta
/usr/ccs/bin/get
/usr/ccs/bin/prs
/usr/ccs/bin/rmdel
/usr/ccs/bin/sact
/usr/ccs/bin/unget
/usr/lib/uucp/uucico
/usr/lib/uucp/uuxqt
/usr/sbin/cs
/usr/sbin/errpt
/usr/ucb/uptime
/usr/ucb/w
/usr/include/sys/adapter_vme.h
/usr/include/sys/boot.h
/usr/include/sys/bsp.h
/usr/include/sys/bus_f.h
/usr/include/sys/hardmap.h
/usr/include/sys/vm_mdep.h
Special Conditions for Installation:
None.
Possible Side Effects:
None.
return to index
================================================================================
Concurrent Computer Corporation Software Development
Software Patch Report
Patch Name: base-003
Date Issued: 10/28/1999 10:52:50
Software Package: base pkg (Version 4.1m)
OS Release: PowerMAX OS 4.1m
Architectures: moto
Platforms: Power Hawk 620
Related Patches: none
Related SARS: none
Brief Description:
PowerMAX OS 4.1m base package release updates
Problem Description:
1. If the system time is changed to certain dates in the 21st century,
the date written to the hardware Time Of Century Clock is
mishandled. On a subsequent system reboot, the system time is set
wrong because the date read from the hardware Time Of Century
Clock is incorrect.
Problem Resolution:
1. The kernel now writes the correct date to the hardware Time Of
Century Clock when the system time is changed, thereby ensuring
the system time is correctly set upon system reboot.
Object To Be Replaced:
/etc/conf/pack.d/svc/Driver.o
Special Conditions for Installation:
None.
Possible Side Effects:
None.
return to index
================================================================================
Concurrent Computer Corporation Software Development
Software Patch Report
Patch Name: bkrs-001
Date Issued: 12/10/97 10:30:45
Software Package: bkrs pkg (Version 4.1m)
OS Release: PowerMAX_OS 4.1m
Architectures: moto nh
Related Patches: none
Related SARS: none
Brief Description:
Fixes for year 2000 problems in the backup/restore package
Problem Description:
1. The bkreg command does not correctly format a backup rotation
start date if it is beyond 12/31/99.
2. The bkhistory command needs to include the new static C library
getdate() function.
3. The restore and urestore commands need to include the new
static C library getdate() function.
Problem Resolution:
1. In bkget_rotatestart() function, print the year modulo 100.
2. Recompile bkhistory with the new libc.a.
3. Recompile restore and urestore with the new libc.a.
Object To Be Replaced:
/usr/sbin/bkreg
/usr/sbin/urestore
/sbin/bkhistory
/sbin/restore
Special Conditions for Installation:
None.
Possible Side Effects:
None.
return to index
================================================================================
Concurrent Computer Corporation Software Development
Software Patch Report
Patch Name: bkrs-001
Date Issued: 12/10/97 10:30:45
Software Package: bkrs pkg (Version 4.1m)
OS Release: PowerMAX_OS 4.1m
Architectures: moto nh
Related Patches: none
Related SARS: none
Brief Description:
Fixes for year 2000 problems in the backup/restore package
Problem Description:
1. The bkreg command does not correctly format a backup rotation
start date if it is beyond 12/31/99.
2. The bkhistory command needs to include the new static C library
getdate() function.
3. The restore and urestore commands need to include the new
static C library getdate() function.
Problem Resolution:
1. In bkget_rotatestart() function, print the year modulo 100.
2. Recompile bkhistory with the new libc.a.
3. Recompile restore and urestore with the new libc.a.
Object To Be Replaced:
/usr/sbin/bkreg
/usr/sbin/urestore
/sbin/bkhistory
/sbin/restore
Special Conditions for Installation:
None.
Possible Side Effects:
None.
return to index
================================================================================
Concurrent Computer Corporation Software Development
Software Patch Report
Patch Name: cmds-001
Date Issued: 12/10/97 10:39:52
Software Package: cmds pkg (Version 4.1m)
OS Release: PowerMAX_OS 4.1m
Architectures: moto nh
Related Patches: none
Related SARS: none
Brief Description:
Fixes for various year 2000 fixes in commands.
Problem Description:
1. The acctcms, acctcon, acctcon1, acctprc, and acctprc1 commands
print an error message when processing the /etc/acct/holidays
file if the year is > 2000.
2. The crash command incorrectly prints the starting time/date of an
auditing event if the date is beyond 12/31/99.
3. The atq command prints job dates as if they are in the 20th
century even if they are beyond 12/31/99.
4. The at command:
a. will not accept dates of the form:
1) May 26, 2000
2) Dec 25, 2037
3) Jul 4, 25 [i.e. Jul 4, 2025]
b. will not accept dates beyond 12/31/99 if the DATEMSK
environment variable is set.
5. The prfpr command incorrectly prints a profile record's time
stamp if the time stamp is beyond 12/31/99.
6. The sar command incorrectly prints the start record's date if the
date is beyond 12/31/99.
7. The whodo command incorrectly prints a user's login time if the
login time is beyond 12/31/99.
Problem Resolution:
1. Change inithol() to use 2037 instead of 2000 as the last valid
date.
2. Use the year modulo 100 when printing an auditing record's
time/date.
3. Check the year of the job date and print "19" or "20" as
appropriate before printing the year modulo 100.
4. a. Add code to process dates beyond 12/31/99.
b. Addressed by corrected dynamic C library function getdate().
5. Change shtime() to print the year modulo 100.
6. Change output_sysinfo() to print the year modulo 100.
7. Change prtat() to print the year modulo 100.
Object To Be Replaced:
/usr/bin/at
/usr/bin/atq
/usr/lib/acct/acctcms
/usr/lib/acct/acctcon
/usr/lib/acct/acctcon1
/usr/lib/acct/acctprc
/usr/lib/acct/acctprc1
/usr/sbin/crash
/usr/sbin/prfpr
/usr/sbin/sar
/usr/sbin/whodo
Special Conditions for Installation:
None.
Possible Side Effects:
None.
return to index
================================================================================
Concurrent Computer Corporation Software Development
Software Patch Report
Patch Name: cmds-001
Date Issued: 12/10/97 10:39:52
Software Package: cmds pkg (Version 4.1m)
OS Release: PowerMAX_OS 4.1m
Architectures: moto nh
Related Patches: none
Related SARS: none
Brief Description:
Fixes for various year 2000 fixes in commands.
Problem Description:
1. The acctcms, acctcon, acctcon1, acctprc, and acctprc1 commands
print an error message when processing the /etc/acct/holidays
file if the year is > 2000.
2. The crash command incorrectly prints the starting time/date of an
auditing event if the date is beyond 12/31/99.
3. The atq command prints job dates as if they are in the 20th
century even if they are beyond 12/31/99.
4. The at command:
a. will not accept dates of the form:
1) May 26, 2000
2) Dec 25, 2037
3) Jul 4, 25 [i.e. Jul 4, 2025]
b. will not accept dates beyond 12/31/99 if the DATEMSK
environment variable is set.
5. The prfpr command incorrectly prints a profile record's time
stamp if the time stamp is beyond 12/31/99.
6. The sar command incorrectly prints the start record's date if the
date is beyond 12/31/99.
7. The whodo command incorrectly prints a user's login time if the
login time is beyond 12/31/99.
Problem Resolution:
1. Change inithol() to use 2037 instead of 2000 as the last valid
date.
2. Use the year modulo 100 when printing an auditing record's
time/date.
3. Check the year of the job date and print "19" or "20" as
appropriate before printing the year modulo 100.
4. a. Add code to process dates beyond 12/31/99.
b. Addressed by corrected dynamic C library function getdate().
5. Change shtime() to print the year modulo 100.
6. Change output_sysinfo() to print the year modulo 100.
7. Change prtat() to print the year modulo 100.
Object To Be Replaced:
/usr/bin/at
/usr/bin/atq
/usr/lib/acct/acctcms
/usr/lib/acct/acctcon
/usr/lib/acct/acctcon1
/usr/lib/acct/acctprc
/usr/lib/acct/acctprc1
/usr/sbin/crash
/usr/sbin/prfpr
/usr/sbin/sar
/usr/sbin/whodo
Special Conditions for Installation:
None.
Possible Side Effects:
None.
return to index
================================================================================
Concurrent Computer Corporation Software Development
Software Patch Report
Patch Name: cnd-001
Date Issued: 12/10/97 10:49:37
Software Package: cnd pkg (Version 4.1m)
OS Release: PowerMAX_OS 4.1m
Architectures: moto nh
Related Patches: none
Related SARS: none
Brief Description:
Fix for networking problems with the Condor ethernet driver.
Problem Description:
1. On systems with a Condor or an Eagle ethernet adapter,
X Windows would hang and (eventually) die.
2. The condor driver could get stuck in a very long wait
loop (seemingly hanging the system) waiting on status
from the condor board to change.
Problem Resolution:
1. This was a problem in the code which transmitted packets
for these cards. As a part of the processing, we would
try to break up packets which crossed over page-boundaries
for the purpose of creating a 'gather-list'. The problem
was a simple logic error ('<' needed to be '<='), where
packets which ended on a page boundary were treated as if
they crossed the boundary. This (in turn) caused the
driver to find that it could not get the data for the second
page, at which point it would report a failure and not
transmit the packet (TCP retransmissions would also fail
because the packet data always lined up the same, and since
TCP requires packets to be sent in sequence, the TCP
connection would hang). This could cause any TCP (not just
X-window) connection to hang, and it could also have caused
UDP connections to lose data.
2. As stated, this particular wait loop was waiting for a
value on the condor board to change. To do this, it has a
pointer to this location on the board from some internal
structure. The problem was this: the pointer was not
declared as volatile, and as a result of some compiler
optimization, the value was never reloaded from the board
and it seemed as if it never changed.
To fix this, rather than simply addressing the one case
which illustrated the hang, all pointers which should have
been declared as volatile are now done as such (there were
only a small number which weren't already).
Object To Be Replaced:
/etc/conf/pack.d/cnd/Driver.o
Special Conditions for Installation:
None.
Possible Side Effects:
None.
return to index
================================================================================
Concurrent Computer Corporation Software Development
Software Patch Report
Patch Name: cnd-001
Date Issued: 12/10/97 10:49:37
Software Package: cnd pkg (Version 4.1m)
OS Release: PowerMAX_OS 4.1m
Architectures: moto nh
Related Patches: none
Related SARS: none
Brief Description:
Fix for networking problems with the Condor ethernet driver.
Problem Description:
1. On systems with a Condor or an Eagle ethernet adapter,
X Windows would hang and (eventually) die.
2. The condor driver could get stuck in a very long wait
loop (seemingly hanging the system) waiting on status
from the condor board to change.
Problem Resolution:
1. This was a problem in the code which transmitted packets
for these cards. As a part of the processing, we would
try to break up packets which crossed over page-boundaries
for the purpose of creating a 'gather-list'. The problem
was a simple logic error ('<' needed to be '<='), where
packets which ended on a page boundary were treated as if
they crossed the boundary. This (in turn) caused the
driver to find that it could not get the data for the second
page, at which point it would report a failure and not
transmit the packet (TCP retransmissions would also fail
because the packet data always lined up the same, and since
TCP requires packets to be sent in sequence, the TCP
connection would hang). This could cause any TCP (not just
X-window) connection to hang, and it could also have caused
UDP connections to lose data.
2. As stated, this particular wait loop was waiting for a
value on the condor board to change. To do this, it has a
pointer to this location on the board from some internal
structure. The problem was this: the pointer was not
declared as volatile, and as a result of some compiler
optimization, the value was never reloaded from the board
and it seemed as if it never changed.
To fix this, rather than simply addressing the one case
which illustrated the hang, all pointers which should have
been declared as volatile are now done as such (there were
only a small number which weren't already).
Object To Be Replaced:
/etc/conf/pack.d/cnd/Driver.o
Special Conditions for Installation:
None.
Possible Side Effects:
None.
return to index
================================================================================
Concurrent Computer Corporation Software Development
Software Patch Report
Patch Name: crosslibs-001
Date Issued: 12/10/97 10:51:15
Software Package: crosslibs pkg (Version 4.1m)
OS Release: PowerMAX_OS 4.1m
Architectures: moto nh
Related Patches: none
Related SARS: none
Brief Description:
Cross-architecture versions of libc and libud fixes from other patches
Problem Description:
1. Problems with spl_manage(3X) and iconnect(3C):
spl_manage(3X) would core dump on NH6800.
spl_manage(3X) would return the wrong previous ipl value on moto.
spl_manage(3X) and spl_request(3X) would not modify the correct
ipl memory location for moto.
On all platforms, the PL_PROBE and PL_XCALL platform independent
ipls were not set to the proper ipl level on spl_manage(3X) calls.
For iconnect(3C) ICON_CONN calls, IC_VERSION3 would not be
accepted as a valid version number.
2. Fixes for various year 2000 issues in libc need to be distributed
in crosslibs.
Problem Resolution:
1. The kernel now accepts IC_VERSION3 as a valid ICON_CONN
version number. The C and/or thread library now converts
the version 3 platform independent ipl value into the
appropriate platform dependent ipl value before calling the
kernel in this case.
For moto, the spl_request()/spl_manage() code now reads and writes
the correct ipl location in memory. spl_manage() now returns
the correct value for the previous ipl.
The probe and xcall ipls were corrected in the appropriate
tables for all platforms.
For NH6800, the spl_manage() routine now masks off just the
read ipl value before indexing into the ipl table. Extra
bits in the read ipl value were causing a page fault due to
a bad index.
2. Fixes for various year 2000 problems in libc are included.
Object To Be Replaced:
/usr/lib/crosslibs/libc.so
/usr/lib/crosslibs/libc.so.1
/usr/lib/crosslibs/libc.a
/usr/lib/crosslibs/libud.so
/usr/lib/crosslibs/libud.a
Special Conditions for Installation:
None.
Possible Side Effects:
None.
return to index
================================================================================
Concurrent Computer Corporation Software Development
Software Patch Report
Patch Name: crosslibs-001
Date Issued: 12/10/97 10:51:15
Software Package: crosslibs pkg (Version 4.1m)
OS Release: PowerMAX_OS 4.1m
Architectures: moto nh
Related Patches: none
Related SARS: none
Brief Description:
Cross-architecture versions of libc and libud fixes from other patches
Problem Description:
1. Problems with spl_manage(3X) and iconnect(3C):
spl_manage(3X) would core dump on NH6800.
spl_manage(3X) would return the wrong previous ipl value on moto.
spl_manage(3X) and spl_request(3X) would not modify the correct
ipl memory location for moto.
On all platforms, the PL_PROBE and PL_XCALL platform independent
ipls were not set to the proper ipl level on spl_manage(3X) calls.
For iconnect(3C) ICON_CONN calls, IC_VERSION3 would not be
accepted as a valid version number.
2. Fixes for various year 2000 issues in libc need to be distributed
in crosslibs.
Problem Resolution:
1. The kernel now accepts IC_VERSION3 as a valid ICON_CONN
version number. The C and/or thread library now converts
the version 3 platform independent ipl value into the
appropriate platform dependent ipl value before calling the
kernel in this case.
For moto, the spl_request()/spl_manage() code now reads and writes
the correct ipl location in memory. spl_manage() now returns
the correct value for the previous ipl.
The probe and xcall ipls were corrected in the appropriate
tables for all platforms.
For NH6800, the spl_manage() routine now masks off just the
read ipl value before indexing into the ipl table. Extra
bits in the read ipl value were causing a page fault due to
a bad index.
2. Fixes for various year 2000 problems in libc are included.
Object To Be Replaced:
/usr/lib/crosslibs/libc.so
/usr/lib/crosslibs/libc.so.1
/usr/lib/crosslibs/libc.a
/usr/lib/crosslibs/libud.so
/usr/lib/crosslibs/libud.a
Special Conditions for Installation:
None.
Possible Side Effects:
None.
return to index
================================================================================
Concurrent Computer Corporation Software Development
Software Patch Report
Patch Name: egl-001
Date Issued: 12/10/97 11:00:45
Software Package: egl pkg (Version 4.1m)
OS Release: PowerMAX_OS 4.1m
Architectures: moto nh
Related Patches: none
Related SARS: none
Brief Description:
Fix for networking problem with Eagle ethernet driver.
Problem Description:
1. On systems with a condor or an eagle ethernet adapter,
X Windows would hang and (eventually) die.
Problem Resolution:
1. This was a problem in the code which transmitted packets
for these cards. As a part of the processing, we would
try to break up packets which crossed over page-boundaries
for the purpose of creating a 'gather-list'. The problem
was a simple logic error ('<' needed to be '<='), where
packets which ended on a page boundary were treated as if
they crossed the boundary. This (in turn) caused the
driver to find that it could not get the data for the second
page, at which point it would report a failure and not
transmit the packet (TCP retransmissions would also fail
because the packet data always lined up the same, and since
TCP requires packets to be sent in sequence, the TCP
connection would hang). This could cause any TCP (not just
X-window) connection to hang, and it could also have caused
UDP connections to lose data.
Object To Be Replaced:
/etc/conf/pack.d/egl/Driver.o
Special Conditions for Installation:
None.
Possible Side Effects:
None.
return to index
================================================================================
Concurrent Computer Corporation Software Development
Software Patch Report
Patch Name: egl-001
Date Issued: 12/10/97 11:00:45
Software Package: egl pkg (Version 4.1m)
OS Release: PowerMAX_OS 4.1m
Architectures: moto nh
Related Patches: none
Related SARS: none
Brief Description:
Fix for networking problem with Eagle ethernet driver.
Problem Description:
1. On systems with a condor or an eagle ethernet adapter,
X Windows would hang and (eventually) die.
Problem Resolution:
1. This was a problem in the code which transmitted packets
for these cards. As a part of the processing, we would
try to break up packets which crossed over page-boundaries
for the purpose of creating a 'gather-list'. The problem
was a simple logic error ('<' needed to be '<='), where
packets which ended on a page boundary were treated as if
they crossed the boundary. This (in turn) caused the
driver to find that it could not get the data for the second
page, at which point it would report a failure and not
transmit the packet (TCP retransmissions would also fail
because the packet data always lined up the same, and since
TCP requires packets to be sent in sequence, the TCP
connection would hang). This could cause any TCP (not just
X-window) connection to hang, and it could also have caused
UDP connections to lose data.
Object To Be Replaced:
/etc/conf/pack.d/egl/Driver.o
Special Conditions for Installation:
None.
Possible Side Effects:
None.
return to index
================================================================================
Concurrent Computer Corporation Software Development
Software Patch Report
Patch Name: inet-001
Date Issued: 12/10/97 11:02:13
Software Package: inet pkg (Version 4.1m)
OS Release: PowerMAX_OS 4.1m
Architectures: moto nh
Related Patches: none
Related SARS: none
Brief Description:
Fixes for various year 2000 problems in the inet package.
Problem Description:
1. The ftp "newer" command will retrieve a remote file even if it is
not newer than the local file, depending upon the relative
modification time stamps of the files.
2. The ftp "newer" command does not work correctly when the remote
file's time stamp is beyond 12/31/99.
3. The ftp "modtime" command incorrectly prints a remote file's
modification time if its time stamp is beyond 12/31/99.
Problem Resolution:
1. Restructure and enhance the time stamp comparison code within the
getit() function so that all necessary comparisons are made.
2. Add code to the getit() function to make sure the remote file's
time stamp has the same meaning as the local file's time stamp.
This ensures that the time stamp comparison is logically correct.
3. Add code to the ftp daemon to correctly format the remote file's
time stamp.
Object To Be Replaced:
/usr/bin/ftp
/usr/sbin/in.ftpd
Special Conditions for Installation:
None.
Possible Side Effects:
None.
return to index
================================================================================
Concurrent Computer Corporation Software Development
Software Patch Report
Patch Name: inet-001
Date Issued: 12/10/97 11:02:13
Software Package: inet pkg (Version 4.1m)
OS Release: PowerMAX_OS 4.1m
Architectures: moto nh
Related Patches: none
Related SARS: none
Brief Description:
Fixes for various year 2000 problems in the inet package.
Problem Description:
1. The ftp "newer" command will retrieve a remote file even if it is
not newer than the local file, depending upon the relative
modification time stamps of the files.
2. The ftp "newer" command does not work correctly when the remote
file's time stamp is beyond 12/31/99.
3. The ftp "modtime" command incorrectly prints a remote file's
modification time if its time stamp is beyond 12/31/99.
Problem Resolution:
1. Restructure and enhance the time stamp comparison code within the
getit() function so that all necessary comparisons are made.
2. Add code to the getit() function to make sure the remote file's
time stamp has the same meaning as the local file's time stamp.
This ensures that the time stamp comparison is logically correct.
3. Add code to the ftp daemon to correctly format the remote file's
time stamp.
Object To Be Replaced:
/usr/bin/ftp
/usr/sbin/in.ftpd
Special Conditions for Installation:
None.
Possible Side Effects:
None.
return to index
================================================================================
Concurrent Computer Corporation Software Development
Software Patch Report
Patch Name: netcmds-001
Date Issued: 12/10/97 11:48:37
Software Package: netcmds pkg (Version 4.1m)
OS Release: PowerMAX_OS 4.1m
Architectures: moto nh
Related Patches: none
Related SARS: none
Brief Description:
Fixes for year 2000 problems in the net commands package.
Problem Description:
1. The lpNet command prints a log file entry's time stamp incorrectly
if the time stamp is beyond 12/31/99.
2. A mail message's message id, created from the current date, is
incorrectly formatted by smtp if the date is beyond 12/31/99.
Problem Resolution:
1. In the WriteLogMsg() function, print the year modulo 100 when date
stamping a log entry.
2. In the smtp message_id() function, print the year modulo 100 when
constructing the message id.
Object To Be Replaced:
/usr/lib/lp/lpNet
/usr/lib/mail/surrcmd/smtp
Special Conditions for Installation:
None.
Possible Side Effects:
None.
return to index
================================================================================
Concurrent Computer Corporation Software Development
Software Patch Report
Patch Name: netcmds-001
Date Issued: 12/10/97 11:48:37
Software Package: netcmds pkg (Version 4.1m)
OS Release: PowerMAX_OS 4.1m
Architectures: moto nh
Related Patches: none
Related SARS: none
Brief Description:
Fixes for year 2000 problems in the net commands package.
Problem Description:
1. The lpNet command prints a log file entry's time stamp incorrectly
if the time stamp is beyond 12/31/99.
2. A mail message's message id, created from the current date, is
incorrectly formatted by smtp if the date is beyond 12/31/99.
Problem Resolution:
1. In the WriteLogMsg() function, print the year modulo 100 when date
stamping a log entry.
2. In the smtp message_id() function, print the year modulo 100 when
constructing the message id.
Object To Be Replaced:
/usr/lib/lp/lpNet
/usr/lib/mail/surrcmd/smtp
Special Conditions for Installation:
None.
Possible Side Effects:
None.
return to index
================================================================================
Concurrent Computer Corporation Software Development
Software Patch Report
Patch Name: nsu-001
Date Issued: 12/10/97 13:14:38
Software Package: nsu pkg (Version 4.1m)
OS Release: PowerMAX_OS 4.1m
Architectures: moto nh
Related Patches: none
Related SARS: none
Brief Description:
Fixes for year 2000 problems in the nsu package.
Problem Description:
1. The listen port monitor and the nlps_server server date stamp log
file records incorrectly if the date is beyond 12/31/99.
Problem Resolution:
1. Change stamp() to print the year modulo 100.
Object To Be Replaced:
/usr/lib/saf/listen
/usr/lib/saf/nlps_server
Special Conditions for Installation:
None.
Possible Side Effects:
None.
return to index
================================================================================
Concurrent Computer Corporation Software Development
Software Patch Report
Patch Name: nsu-001
Date Issued: 12/10/97 13:14:38
Software Package: nsu pkg (Version 4.1m)
OS Release: PowerMAX_OS 4.1m
Architectures: moto nh
Related Patches: none
Related SARS: none
Brief Description:
Fixes for year 2000 problems in the nsu package.
Problem Description:
1. The listen port monitor and the nlps_server server date stamp log
file records incorrectly if the date is beyond 12/31/99.
Problem Resolution:
1. Change stamp() to print the year modulo 100.
Object To Be Replaced:
/usr/lib/saf/listen
/usr/lib/saf/nlps_server
Special Conditions for Installation:
None.
Possible Side Effects:
None.
return to index
================================================================================
Concurrent Computer Corporation Software Development
Software Patch Report
Patch Name: oam-001
Date Issued: 12/10/97 13:16:14
Software Package: oam pkg (Version 4.1m)
OS Release: PowerMAX_OS 4.1m
Architectures: moto nh
Related Patches: none
Related SARS: none
Brief Description:
Fix for year 2000 problems in the oam package
Problem Description:
1. The ckdate command does not accept dates beyond 12/31/99 when
using the %D format (the default) or the %y format.
Problem Resolution:
1. Recompile ckdate with a static C library containing the updated
getdate() function.
Object To Be Replaced:
/usr/bin/ckdate
Special Conditions for Installation:
None.
Possible Side Effects:
None.
return to index
================================================================================
Concurrent Computer Corporation Software Development
Software Patch Report
Patch Name: oam-001
Date Issued: 12/10/97 13:16:14
Software Package: oam pkg (Version 4.1m)
OS Release: PowerMAX_OS 4.1m
Architectures: moto nh
Related Patches: none
Related SARS: none
Brief Description:
Fix for year 2000 problems in the oam package
Problem Description:
1. The ckdate command does not accept dates beyond 12/31/99 when
using the %D format (the default) or the %y format.
Problem Resolution:
1. Recompile ckdate with a static C library containing the updated
getdate() function.
Object To Be Replaced:
/usr/bin/ckdate
Special Conditions for Installation:
None.
Possible Side Effects:
None.
return to index
================================================================================
Concurrent Computer Corporation Software Development
Software Patch Report
Patch Name: vpci-001
Date Issued: 12/10/97 13:17:22
Software Package: vpci pkg (Version 4.1m)
OS Release: PowerMAX_OS 4.1m
Architectures: moto nh
Related Patches: none
Related SARS: none
Brief Description:
Corrects vpci failure to locate vpci device.
Problem Description:
1. The initialization logic of the vpci driver references
unitialized memory and therefore may fail to locate a
properly configured vpci device.
Problem Resolution:
1. Reference the proper pointer when scanning the internal
tables during initialization.
Object To Be Replaced:
/etc/conf/pack.d/vpci/Driver.o
Special Conditions for Installation:
None.
Possible Side Effects:
None.
return to index
================================================================================
Concurrent Computer Corporation Software Development
Software Patch Report
Patch Name: vpci-001
Date Issued: 12/10/97 13:17:22
Software Package: vpci pkg (Version 4.1m)
OS Release: PowerMAX_OS 4.1m
Architectures: moto nh
Related Patches: none
Related SARS: none
Brief Description:
Corrects vpci failure to locate vpci device.
Problem Description:
1. The initialization logic of the vpci driver references
unitialized memory and therefore may fail to locate a
properly configured vpci device.
Problem Resolution:
1. Reference the proper pointer when scanning the internal
tables during initialization.
Object To Be Replaced:
/etc/conf/pack.d/vpci/Driver.o
Special Conditions for Installation:
None.
Possible Side Effects:
None.
return to index
================================================================================