                 <<< DOCD$:[NOTES$LIBRARY]SCT-GRYPHON.NOTE;1 >>>
                                -< sct-gryphon >-
================================================================================
Note 2518.0          GRYPHON_SSB: BugFix-error_routines_1605          No replies
EVMS::KFOLLIEN "{VDE SCT}"                          147 lines  19-NOV-1996 10:01
--------------------------------------------------------------------------------

          Project:                Gryphon 
          Project Leader: 	  Ken Follien        
          Development Stream:     GRYPHON_SSB
          Checkin Type:           BugFix
          Problem Symptom:        RawHide System Crash with ACCVIO
				  during system boot.    
          Diagnosis:

On Rawhide, if the FRU table is too large for the error log buffer, then
the call to allocemb fails. The failure path leads to a code segment that
uses a pointer incorrectly.
 
The following statement gets the contents of the cell when it is supposed
to get the address:
 
SYS_FLAGS           *sys_flags_ptr = exe$gl_flags;
 
This causes the following statement to incur an ACCVIO, which prevents
booting:
 
if (sys_flags_ptr->exe$v_wlksysdsk != 0)
{
     ;  /*** system disk is writelocked ***/
 
     debug_printf("\n**System Disk WriteLocked");
}
 

          Cure: Remove the unnecessary offending
		code from error handling routine:

		if (sys_flags_ptr->exe$v_wlksysdsk != 0)
		{
     		  ;  /*** system disk is writelocked ***/

    		    debug_printf("\n**System Disk WriteLocked");
		}
                                    
          Platforms affected:     RawHide
    
          Modules:                [CPU1605]ERROR_ROUTINES_1605.C
    
          Affected Images (if feasible): SYS$CPU_ROUTINES_1605.EXE
    
          Impact/Risks:            None
    
          How this change was Tested: With new SYS$CPU_ROUTINES_1605.EXE
	  installed in OpenVMS V1.7 (X6BW), booted on both RawHide and
	  Durango systems.
                                  
          Associated QARs,CLDs,SPRs: 2937
    
          (Optional) Special Build Instructions: 

	    Comments:

			***Difference File***


************
File WORK7:[KFOLLIEN.CPU1605.SRC]ERROR_ROUTINES_1605.C_10A5;1
    1   #pragma module ERROR_ROUTINES_1605 "X-10A5"
    2   /*
******
File WORK7:[KFOLLIEN.CPU1605.SRC]ERROR_ROUTINES_1605.C_10A6;3
    1   #pragma module ERROR_ROUTINES_1605 "X-10A6"
    2   /*
************
************
File WORK7:[KFOLLIEN.CPU1605.SRC]ERROR_ROUTINES_1605.C_10A5;1
   46    *	X-15	KJF	Ken Follien	03-Oct-1996
******
File WORK7:[KFOLLIEN.CPU1605.SRC]ERROR_ROUTINES_1605.C_10A6;3
   46    *	X-16	KJF	Ken Follien	18-Nov-1996
   47    *	(10A6)	BugFix (Removed debug code reference to
   48    *		bit exe$v_wlksysdsk defined in SYS_FLAGS
   49    *		and all associated assignments). Increase
   50    *		erlbuffer_pages from 2 pagelets to 8 which
   51    *		is the current default.
   52    *		
   53    *	X-15	KJF	Ken Follien	03-Oct-1996
************
************
File WORK7:[KFOLLIEN.CPU1605.SRC]ERROR_ROUTINES_1605.C_10A5;1
  164   #include	<syspardef>	/* for sys_flags only */
  165   #include	<vms_macros>
******
File WORK7:[KFOLLIEN.CPU1605.SRC]ERROR_ROUTINES_1605.C_10A6;3
  171   #include	<syspardef>
  172   #include	<vms_macros>
************
************
File WORK7:[KFOLLIEN.CPU1605.SRC]ERROR_ROUTINES_1605.C_10A5;1
  341   extern SYS_FLAGS *exe$gl_flags;
  342   extern uint64	exe$gl_mchkerrs;
******
File WORK7:[KFOLLIEN.CPU1605.SRC]ERROR_ROUTINES_1605.C_10A6;3
  348   extern uint64	exe$gl_mchkerrs;
************
************
File WORK7:[KFOLLIEN.CPU1605.SRC]ERROR_ROUTINES_1605.C_10A5;1
  521       SYS_FLAGS		*sys_flags_ptr = exe$gl_flags;
  522       ADP			*system_adp = ioc$gl_adplist;
******
File WORK7:[KFOLLIEN.CPU1605.SRC]ERROR_ROUTINES_1605.C_10A6;3
  527       ADP			*system_adp = ioc$gl_adplist;
************
************
File WORK7:[KFOLLIEN.CPU1605.SRC]ERROR_ROUTINES_1605.C_10A5;1
  558       erlbuffer_pages = 2;		/* start with default */
  559   
******
File WORK7:[KFOLLIEN.CPU1605.SRC]ERROR_ROUTINES_1605.C_10A6;3
  563       erlbuffer_pages = 8;		/* start with default */
  564   
************
************
File WORK7:[KFOLLIEN.CPU1605.SRC]ERROR_ROUTINES_1605.C_10A5;1
  691   	    if (sys_flags_ptr->exe$v_wlksysdsk != 0)
  692   	    {
  693   		;  /*** system disk is writelocked ***/
  694   
  695   	    debug_printf("\n**System Disk WriteLocked");
  696   	    }
  697   	    crash_printf("\n****FRU packet buffer allocation failure:"
******
File WORK7:[KFOLLIEN.CPU1605.SRC]ERROR_ROUTINES_1605.C_10A6;3
  696   	    crash_printf("\n****FRU packet buffer allocation failure:"
************
************
File WORK7:[KFOLLIEN.CPU1605.SRC]ERROR_ROUTINES_1605.C_10A5;1
  829       ** ERLBUFFERPAGES to the default (2). Therefore, always set this
  830       ** value to the largest that is needed. Never *lower* this value.
******
File WORK7:[KFOLLIEN.CPU1605.SRC]ERROR_ROUTINES_1605.C_10A6;3
  828       ** ERLBUFFERPAGES to the default (8). Therefore, always set this
  829       ** value to the largest that is needed. Never *lower* this value.
************

Number of difference sections found: 8
Number of difference records found: 19

DIFFERENCES /IGNORE=()/MERGED=1/OUTPUT=WORK7:[KFOLLIEN.CPU1605.SRC]ERROR_ROUTINES_1605.DIFF;2-
    WORK7:[KFOLLIEN.CPU1605.SRC]ERROR_ROUTINES_1605.C_10A5;1-
    WORK7:[KFOLLIEN.CPU1605.SRC]ERROR_ROUTINES_1605.C_10A6;3

