croft%Safe@su-score.ARPA (04/23/84)
From: Bill Croft <croft%Safe@su-score.ARPA> The early 4.2 tapes had a bug in /sys/vax/locore.s that would cause random panics if your system had devices at spl6 (such as a 3COM ethernet board). The problem was that the dztimer/dhtimer routines do spl5's internally and they were being called from hardclock. If there was already an spl6 device active when the hardclock came in, it could be reentered after the spl5 in dztimer. The fix was simply to move the timer calls down to softclock. If you have a later tape from Berkeley, this is already fixed. (Stanford was in the first dozen tapes mailed). *** /sys/vax/locore.s_ Thu Sep 29 11:06:58 1983 --- locore.s Fri Jan 13 06:03:43 1984 *************** *** 1,4 ! /* locore.s 6.4 83/09/29 */ --- 1,4 ----- ! /* locore.s 6.3 83/08/12 */ *************** *** 161,172 mtpr $ICCS_RUN|ICCS_IE|ICCS_INT|ICCS_ERR,$ICCS pushl 4+6*4(sp); pushl 4+6*4(sp); calls $2,_hardclock # hardclock(pc,psl) - #if NDZ > 0 - calls $0,_dztimer - #endif - #if NDH > 0 - calls $0,_dhtimer - #endif #if NPS > 0 pushl 4+6*4(sp); pushl 4+6*4(sp); calls $2,_psextsync --- 161,166 ----- mtpr $ICCS_RUN|ICCS_IE|ICCS_INT|ICCS_ERR,$ICCS pushl 4+6*4(sp); pushl 4+6*4(sp); calls $2,_hardclock # hardclock(pc,psl) #if NPS > 0 pushl 4+6*4(sp); pushl 4+6*4(sp); calls $2,_psextsync *************** *** 176,181 rei SCBVEC(softclock): PUSHR pushl 4+6*4(sp); pushl 4+6*4(sp); calls $2,_softclock # softclock(pc,psl) POPR; --- 170,181 ----- rei SCBVEC(softclock): PUSHR + #if NDZ > 0 + calls $0,_dztimer + #endif + #if NDH > 0 + calls $0,_dhtimer + #endif pushl 4+6*4(sp); pushl 4+6*4(sp); calls $2,_softclock # softclock(pc,psl) POPR;