bus_dmamap_load_uio() and user data
tinguely at casselton.net
Thu Jan 7 21:17:53 UTC 2010
In the user space case of bus_dmamap_load_uio(), the calling thread is
stored in uio->uio_td, in which the user's pmap can be determined.
The ARM processor, with the possible exception of the ARMv7 MPcore
with snoop control unit, needs to make the caches consistent before
DMA. I noticed that the routine, _bus_dmamap_sync(), copies data into
the bounce buffer using current pmap.
Can/should we assume the uio sent from to bus_dmamap_load_uio() is
always in the same address space as thread that is executing
More information about the freebsd-hackers