Subject: CVS commit: syssrc
To: None <source-changes@netbsd.org>
From: Jason R Thorpe <thorpej@netbsd.org>
List: source-changes
Date: 08/05/1999 11:08:16
Module Name:	syssrc
Committed By:	thorpej
Date:		Thu Aug  5 18:08:16 UTC 1999

Modified Files:
	syssrc/sys/arch/alpha/include: intr.h
	syssrc/sys/arch/amiga/dev: par.c
	syssrc/sys/arch/amiga/include: psl.h
	syssrc/sys/arch/arm32/include: psl.h
	syssrc/sys/arch/atari/include: intr.h
	syssrc/sys/arch/bebox/include: intr.h
	syssrc/sys/arch/hp300/dev: ppi.c
	syssrc/sys/arch/hp300/include: intr.h
	syssrc/sys/arch/i386/include: intr.h
	syssrc/sys/arch/m68k/include: psl.h
	syssrc/sys/arch/mac68k/include: intr.h
	syssrc/sys/arch/macppc/include: intr.h
	syssrc/sys/arch/mvme68k/include: param.h
	syssrc/sys/arch/newsmips/include: intr.h
	syssrc/sys/arch/newsmips/newsmips: locore_machdep.S
	syssrc/sys/arch/next68k/include: intr.h
	syssrc/sys/arch/ofppc/include: cpu.h
	syssrc/sys/arch/ofppc/ofppc: soft_spl.c
	syssrc/sys/arch/pc532/include: psl.h
	syssrc/sys/arch/pmax/dev: rcons.c
	syssrc/sys/arch/pmax/include: intr.h
	syssrc/sys/arch/sparc/dev: kd.c
	syssrc/sys/arch/sparc/include: psl.h
	syssrc/sys/arch/sparc64/dev: cons.c kd.c
	syssrc/sys/arch/sparc64/include: psl.h
	syssrc/sys/arch/sun3/dev: kd.c
	syssrc/sys/arch/sun3/include: psl.h
	syssrc/sys/arch/vax/include: param.h
	syssrc/sys/arch/x68k/dev: par.c
	syssrc/sys/arch/x68k/include: intr.h
	syssrc/sys/compat/netbsd32: netbsd32_netbsd.c
	syssrc/sys/kern: kern_clock.c kern_time.c

Log Message:
Change the semantics of splsoftclock() to be like other spl*() functions,
that is priority is rasied.  Add a new spllowersoftclock() to provide the
atomic drop-to-softclock semantics that the old splsoftclock() provided,
and update calls accordingly.

This fixes a problem with using the "rnd" pseudo-device from within
interrupt context to extract random data (e.g. from within the softnet
interrupt) where doing so would incorrectly unblock interrupts (causing
all sorts of lossage).

XXX 4 platforms do not have priority-raising capability: newsmips, sparc,
XXX sparc64, and VAX.  This platforms still have this bug until their
XXX spl*() functions are fixed.


To generate a diff of this commit:
cvs rdiff -r1.19 -r1.20 syssrc/sys/arch/alpha/include/intr.h
cvs rdiff -r1.17 -r1.18 syssrc/sys/arch/amiga/dev/par.c
cvs rdiff -r1.13 -r1.14 syssrc/sys/arch/amiga/include/psl.h
cvs rdiff -r1.11 -r1.12 syssrc/sys/arch/arm32/include/psl.h
cvs rdiff -r1.7 -r1.8 syssrc/sys/arch/atari/include/intr.h
cvs rdiff -r1.8 -r1.9 syssrc/sys/arch/bebox/include/intr.h
cvs rdiff -r1.16 -r1.17 syssrc/sys/arch/hp300/dev/ppi.c
cvs rdiff -r1.6 -r1.7 syssrc/sys/arch/hp300/include/intr.h
cvs rdiff -r1.11 -r1.12 syssrc/sys/arch/i386/include/intr.h
cvs rdiff -r1.5 -r1.6 syssrc/sys/arch/m68k/include/psl.h
cvs rdiff -r1.15 -r1.16 syssrc/sys/arch/mac68k/include/intr.h
cvs rdiff -r1.4 -r1.5 syssrc/sys/arch/macppc/include/intr.h
cvs rdiff -r1.15 -r1.16 syssrc/sys/arch/mvme68k/include/param.h
cvs rdiff -r1.2 -r1.3 syssrc/sys/arch/newsmips/include/intr.h
cvs rdiff -r1.5 -r1.6 syssrc/sys/arch/newsmips/newsmips/locore_machdep.S
cvs rdiff -r1.5 -r1.6 syssrc/sys/arch/next68k/include/intr.h
cvs rdiff -r1.4 -r1.5 syssrc/sys/arch/ofppc/include/cpu.h
cvs rdiff -r1.1 -r1.2 syssrc/sys/arch/ofppc/ofppc/soft_spl.c
cvs rdiff -r1.20 -r1.21 syssrc/sys/arch/pc532/include/psl.h
cvs rdiff -r1.29 -r1.30 syssrc/sys/arch/pmax/dev/rcons.c
cvs rdiff -r1.7 -r1.8 syssrc/sys/arch/pmax/include/intr.h
cvs rdiff -r1.4 -r1.5 syssrc/sys/arch/sparc/dev/kd.c
cvs rdiff -r1.16 -r1.17 syssrc/sys/arch/sparc/include/psl.h
cvs rdiff -r1.1.1.1 -r1.2 syssrc/sys/arch/sparc64/dev/cons.c
cvs rdiff -r1.4 -r1.5 syssrc/sys/arch/sparc64/dev/kd.c
cvs rdiff -r1.9 -r1.10 syssrc/sys/arch/sparc64/include/psl.h
cvs rdiff -r1.26 -r1.27 syssrc/sys/arch/sun3/dev/kd.c
cvs rdiff -r1.14 -r1.15 syssrc/sys/arch/sun3/include/psl.h
cvs rdiff -r1.36 -r1.37 syssrc/sys/arch/vax/include/param.h
cvs rdiff -r1.8 -r1.9 syssrc/sys/arch/x68k/dev/par.c
cvs rdiff -r1.2 -r1.3 syssrc/sys/arch/x68k/include/intr.h
cvs rdiff -r1.16 -r1.17 syssrc/sys/compat/netbsd32/netbsd32_netbsd.c
cvs rdiff -r1.48 -r1.49 syssrc/sys/kern/kern_clock.c
cvs rdiff -r1.37 -r1.38 syssrc/sys/kern/kern_time.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.