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
================================================================================