NetBSD/sys/arch/sparc64
chs 365df27e4b in sparc_interrupt(), wait to enable interrupts until just before calling
the handler and disable them again right after the handler returns.
we don't want another hardware interrupt coming in while we're mucking
with the list pointers.  also, clear the intrhand's ih_pending pointer
before calling the handler rather than after, so that if another interrupt
comes in while the handler is running, we can put the intrhand back on
the list so it will be called again.

in send_softint(), disable interrupts via %pstate instead of %pil, so that
hardware interrupts at higher levels are blocked while we manipulate the
intrpending list.  also, if the intrhand already has ih_pending set,
don't bother poking the SET_SOFTINT register again, since being on the list
implies that there is already a softint pending in the hardware.

these appear to fix PR 21750 (the "sleep forever" problem).

while I'm here, remove more vestiges of the !INTRLIST softint stuff
(code and comments).  and in sparc64_ipi_flush_all(), interrupts are
already disabled so we don't need to fiddle with %pstate.
2005-02-12 21:32:56 +00:00
..
compile Rework how KERNOBJDIR functions; now it's always determined with 2003-01-06 17:40:18 +00:00
conf Add some PCMCIA devices that were missing. 2005-02-11 18:26:59 +00:00
dev the arguments to BUS_ADDR() are (space, offset), not the other way around. 2004-12-04 16:19:36 +00:00
include Remove orphaned extern declaration. 2005-01-27 08:50:27 +00:00
sparc64 in sparc_interrupt(), wait to enable interrupts until just before calling 2005-02-12 21:32:56 +00:00
stand ofwboot.net is gone. from hannken@ 2003-12-07 23:16:03 +00:00
Makefile Rework how KERNOBJDIR functions; now it's always determined with 2003-01-06 17:40:18 +00:00