with spl used to protect other allocations and frees, or datastructure
element insertion and removal, in adjacent code.
It is almost unquestionably the case that some of the spl()/splx() calls
added here are superfluous, but it really seems wrong to see:
s=splfoo();
/* frob data structure */
splx(s);
pool_put(x);
and if we think we need to protect the first operation, then it is hard
to see why we should not think we need to protect the next. "Better
safe than sorry".
It is also almost unquestionably the case that I missed some pool
gets/puts from interrupt context with my strategy for finding these
calls; use of PR_NOWAIT is a strong hint that a pool may be used from
interrupt context but many callers in the kernel pass a "can wait/can't
wait" flag down such that my searches might not have found them. One
notable area that needs to be looked at is pf.
See also:
http://mail-index.netbsd.org/tech-kern/2006/07/19/0003.htmlhttp://mail-index.netbsd.org/tech-kern/2006/07/19/0009.html
- make intersil7170_softc more generic and allocate it during autoconf(9)
rather than MALLOC(9) in attachment
- put todr_chip_handle_t, year0 value, and the century adjustment flag
into the intersil7170_softc
- change the attachment function to just take the softc like mk48txx(4)
- split sys/dev/ic/intersil7170.h into intersil7170reg.h and intersil7170var.h
- cleanup some macro
Untested on real sun4 machines, but no objection on port-sparc
(and port-sun3) in three days.
slightly, but autoinitialize mode is impossible to use reliably, since it
means that if disc interrupts are blocked for long enough (or sec_copyout
is too slow), the uPD71071 can run off the end of a block before the
base registers have been updated and end up processing the same block
twice. With this change, the SEC in my A540 seems finally to be solid.
a sample driver for the TI TMP121 temperature sensor. This has been
moderately tested on Au1550, and it is not enabled in sys/conf (yet). So
the change is harmless at worst, and useful at best.
Alchemy Au1550 bus driver forthcoming, along with a driver for SPI flash
devices, such as found on the Meraki Mini
This development was partially funded by the Champaign-Urbana Community
Wireless Network Project.
Note that there are some MD-specific SPI drivers that could probably be
made MI under this new framework.
structures can thus be misaligned for DMA when declared on stack.
The current atapi code accepts the misaligned dma's only screw's them up.
This small patch disables DMA for the rare transactions that are
misaligned. Note that all bulk-transfers are aligned due to page sizes.
See PR kern/34689
driver uses the board's DMA system, uses the machine-independent WD33C93
driver, works on NetBSD/acorn26, and doesn't share a name with six other
machine-dependent SCSI drivers. Not tested on acorn32, but it seems to
work tolerably well on my A540.
interface that needs firmware
Firmload routines were using FSCRED, which in this case would get to the
NFS code and dereferenced, resulting in a panic. Use the credentials from
the LWP instead.