5832084eaf
managed pages, into KVA space. Since the pages are managed, we should use pmap_enter(), not pmap_kenter_pa(). Also, when entering the mappings, enter with an access_type of VM_PROT_READ | VM_PROT_WRITE. We do this for a couple of reasons: (1) On systems that have H/W mod/ref attributes, the hardware may not be able to track mod/ref done by a bus master. (2) On systems that have to do mod/ref emulation, this prevents a mod/ref page fault from potentially happening while in an interrupt context, which can be problematic. This latter change is fairly important if we ever want to be able to transfer DMA-safe memory pages to anonymous memory objects; we will need to know that the pages are modified, or else data could be lost! Note that while the pages are unowned (i.e. "just DMA-safe memory pages"), they won't consume any swap resources, as the mappings are wired, and the pages aren't on the active or inactive queues. |
||
---|---|---|
.. | ||
bus_dma.c | ||
comlogout.c | ||
sgmap_common.c | ||
sgmap_typedep.c | ||
sgmap_typedep.h | ||
sgmapvar.h | ||
shared_intr.c |