swi_vm() and busdma_swi()?

Matthew Dillon 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 mailing list