4.2 /sys/vax/locore.s (early versions); SPL problem
croft%Safe at su-score.ARPA
croft%Safe at su-score.ARPA
Tue Apr 24 00:01:00 AEST 1984
From: Bill Croft <croft%Safe at 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;
More information about the Comp.unix.wizards
mailing list