Surprising fact about STREAMS service modules
Steven M. Bellovin
smb at ulysses.homer.nj.att.com
Mon Dec 26 06:31:18 AEST 1988
A persistent bug source, in many versions on the UNIX system, is that
splN() calls, other than splx(), unconditionally set the interrupt
level to the indicated value, rather than *raising* it to that value.
It is almost never correct to lower an interrupt level, except via
splx() or spl0(). Sun has gotten some of those right; the symbolic
spl() calls (splimp(), etc.) check the current level before raising it.
4.3bsd is wrong; I haven't been able to check 4.3 Tahoe yet.
More information about the Comp.bugs.sys5
mailing list