spl bugs

utzoo!decvax!watmath!dmmartindale utzoo!decvax!watmath!dmmartindale
Wed Feb 17 16:35:12 AEST 1982


Two raised-priority bugs in 4.1BSD:
========================================
SPL bug in clock.c.  You SHOULD fix this one immediately; it causes most of
softclock to run with interrupts locked out!
The differences dealing with the deletion of references to berknet in clock.c
were suggested by Berkeley in one of their mailings and are not important;
the critical one is the splx() added in the callout loop of softclock.

diff /usr/distr/4.1/sys/sys/clock.c clock.c
21d20
< #include "bk.h"
191c190,191
< 			if ((p1 = calltodo.c_next) == 0 || p1->c_time > 0)
---
> 			if ((p1 = calltodo.c_next) == 0 || p1->c_time > 0) {
> 				splx(s);
192a193
> 			}
206d206
< #if NBK > 0
212d211
< #endif
===========================================================
Minor spl botch in bio.c; causes the strategy routine to run at high
priority:
(This one is in v7 as well.)

*** /usr/distr/4.1/sys/dev/bio.c	Sun May 10 01:35:57 1981
--- bio.c	Fri Sep  4 16:25:29 1981
***************
*** 713,718
  		bp->b_flags |= B_WANTED;
  		sleep((caddr_t)bp, PRIBIO+1);
  	}
  	bp->b_error = 0;
  	bp->b_proc = u.u_procp;
  	bp->b_un.b_addr = u.u_base;

--- 713,719 -----
  		bp->b_flags |= B_WANTED;
  		sleep((caddr_t)bp, PRIBIO+1);
  	}
+ 	(void) spl0();
  	bp->b_error = 0;
  	bp->b_proc = u.u_procp;
  	bp->b_un.b_addr = u.u_base;



More information about the Comp.bugs.4bsd.ucb-fixes mailing list