[net.bugs.4bsd] 4.2 BSD bug in handling "tbuf par fault" on VAX 750

wls@astrovax.UUCP (William L. Sebok) (03/06/84)

Index:	/sys/vax/machdep.c 4.2BSD

Description:
	The computer (a Vax 750) occasionally panics:
		machine check 2:  cp tbuf par fault
	even though BSD 4.2 contains the patch to flush and return on tbuf
	parity errors.
	  The problem is that the test for the condition insists that bit 0 of
	the mcesr (prefetch reference bit) be zero, which need not be true.

Repeat-By:
	Eventually the computer will panic as described above.

Fix:
	Here are the diffs to /sys/vax/machdep.c.  The line numbers of the new
	machdep.c may vary as there have been other fixes necessary.

*** machdep.c.ORIG	Tue Feb 28 11:27:04 1984
--- machdep.c	Mon Mar  5 15:10:41 1984
***************
*** 811,817
  		    mcf->mc5_buserr, mcf->mc5_mcesr, mcf->mc5_pc, mcf->mc5_psl,
  		    mfpr(MCSR));
  		mtpr(MCESR, 0xf);
! 		if ((mcf->mc5_mcesr&0xf) == MC750_TBPAR) {
  			printf("tbuf par: flushing and returning\n");
  			mtpr(TBIA, 0);
  			return;

--- 822,828 -----
  		    mcf->mc5_buserr, mcf->mc5_mcesr, mcf->mc5_pc, mcf->mc5_psl,
  		    mfpr(MCSR));
  		mtpr(MCESR, 0xf);
! 		if ((mcf->mc5_mcesr&0xe) == MC750_TBPAR) {
  			printf("tbuf par: flushing and returning\n");
  			mtpr(TBIA, 0);
  			return;
-- 
Bill Sebok			Princeton University, Astrophysics
{allegra,akgua,burl,cbosgd,decvax,ihnp4,kpno,princeton,vax135}!astrovax!wls