compiler optimising away or reordering accesses to them.
Fixes ehci(4) on NetBSD/evbarm when using -Os optimisation. It's likely
ohci(4) and uhci(4) are similarly afflicted, so the same changes have
been made there.
Quite how other platforms got away without this for so long is a mystery...
blitting. Thanks to David Redman (Tadpole) for noticing it. This probably
escaped notice before, since we never do overlapping blits (in the X
direction), but this fix may prevent problems if someone ever does use it
for that.
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.