freebsd-dev/sys/powerpc/include
jhb 5c1fadddce Fix mtx_legal2block. The only time that it is bad to block on a mutex is
if we hold a spin mutex, since we can trivially get into deadlocks if we
start switching out of processes that hold spinlocks.  Checking to see if
interrupts were disabled was a sort of cheap way of doing this since most
of the time interrupts were only disabled when holding a spin lock.  At
least on the i386.  To fix this properly, use a per-process counter
p_spinlocks that counts the number of spin locks currently held, and
instead of checking to see if interrupts are disabled in the witness code,
check to see if we hold any spin locks.  Since child processes always
start up with the sched lock magically held in fork_exit(), we initialize
p_spinlocks to 1 for child processes.  Note that proc0 doesn't go through
fork_exit(), so it starts with no spin locks held.

Consulting from:	cp
2001-03-09 07:24:17 +00:00
..
_limits.h Our SHRT_MIN definition was actually 4 bits too big. 2000-11-04 21:01:44 +00:00
ansi.h Correct disordering which is corresponding to bde's fix to 2001-02-17 14:51:11 +00:00
asm.h PowerPC assembler #defines. 2001-01-07 03:43:21 +00:00
atomic.h PowerPC atomic operation functions. 2001-01-07 03:46:01 +00:00
bootinfo.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
clock.h Move DELAY() from <machine/clock.h> to <sys/systm.h> 2000-10-15 09:51:49 +00:00
elf.h PowerPC specific ELF ABI definitions. 2001-01-01 21:54:48 +00:00
endian.h PowerPC platform-specific definitions. 2001-01-01 23:19:22 +00:00
exec.h PowerPC platform-specific page size setting. 2001-01-01 23:26:39 +00:00
frame.h Minor style tweaks. 2001-01-02 00:11:41 +00:00
globaldata.h - Make astpending and need_resched process attributes rather than CPU 2001-02-10 02:20:34 +00:00
globals.h - Remove compatibility macros for accessing per-cpu variables. 2001-01-11 14:46:26 +00:00
limits.h Our SHRT_MIN definition was actually 4 bits too big. 2000-11-04 21:01:44 +00:00
md_var.h Next phase in the PCI subsystem cleanup. 2000-12-08 22:11:23 +00:00
mutex.h Fix mtx_legal2block. The only time that it is bad to block on a mutex is 2001-03-09 07:24:17 +00:00
param.h PowerPC platform-specific definitions (modeled on sys/i386/include/param.h) 2001-01-02 00:06:45 +00:00
pcpu.h - Make astpending and need_resched process attributes rather than CPU 2001-02-10 02:20:34 +00:00
ptrace.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
resource.h * Implement bus_set/get/delete_resource for pci. 1999-10-14 21:38:33 +00:00
setjmp.h PowerPC platform-specific definitions (modeled on sys/i386/include/setjmp.h) 2001-01-02 00:34:24 +00:00
sigframe.h sigset_t change (part 3 of 5) 1999-09-29 15:06:27 +00:00
types.h PowerPC platform-specific definitions (modeled on sys/i386/include/types.h) 2001-01-02 00:30:49 +00:00
ucontext.h Minor style tweaks. 2001-01-02 00:11:41 +00:00