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.unix.wizards mailing list