swi_vm() and busdma_swi()?
dillon at apollo.backplane.com
Mon Dec 6 10:43:49 PST 2010
:Err, the current busdma API supports pre-allocation bounce buffer
:zones for address restrictions and alignment constraints, all of the
:network device drivers use that features (I think I converted all of
:the network drivers early 2009).
Which works fairly well on system boot but can fail horribly when
you kldload a driver after the system has been up for a while.
In anycase, I agree re: the async busdma stuff. It needs to be
removed. I'd like to simplify the API to bus_dma_tag_create() as well,
replacing the extremely non-intuitive 'lowaddr' and 'highaddr' fields
with a simple #define'd domain constant. e.g. BUS_DMA_ADDR24,
BUS_DMA_ADDR31, BUS_DMA_ADDR32, and so forth.
More information about the Kernel