diff options
author | kib <kib@FreeBSD.org> | 2009-04-13 19:20:32 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2009-04-13 19:20:32 +0000 |
commit | 9c0149c14794109777f097eb3d37b808101b5c4b (patch) | |
tree | 5366f58d541bcca64e4264204450c39fe815c819 /sys/ia64 | |
parent | e2e8e48cde73d615a1a7f82c22f4da78d3c35756 (diff) | |
download | FreeBSD-src-9c0149c14794109777f097eb3d37b808101b5c4b.zip FreeBSD-src-9c0149c14794109777f097eb3d37b808101b5c4b.tar.gz |
The bus_dmamap_load_uio(9) shall use pmap of the thread recorded in the
uio_td to extract pages from, instead of unconditionally use kernel
pmap.
Submitted by: Jason Harmening <jason.harmening gmail com> (amd64 version)
PR: amd64/133592
Reviewed by: scottl (original patch), jhb
MFC after: 2 weeks
Diffstat (limited to 'sys/ia64')
-rw-r--r-- | sys/ia64/ia64/busdma_machdep.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/ia64/ia64/busdma_machdep.c b/sys/ia64/ia64/busdma_machdep.c index 659db52..609a8a9 100644 --- a/sys/ia64/ia64/busdma_machdep.c +++ b/sys/ia64/ia64/busdma_machdep.c @@ -527,7 +527,10 @@ _bus_dmamap_load_buffer(bus_dma_tag_t dmat, vendaddr = (vm_offset_t)buf + buflen; while (vaddr < vendaddr) { - paddr = pmap_kextract(vaddr); + if (pmap != NULL) + paddr = pmap_extract(pmap, vaddr); + else + paddr = pmap_kextract(vaddr); if (run_filter(dmat, paddr, 0) != 0) map->pagesneeded++; vaddr += PAGE_SIZE; |