summaryrefslogtreecommitdiffstats
path: root/sys/x86
diff options
context:
space:
mode:
authorjah <jah@FreeBSD.org>2015-10-17 14:58:55 +0000
committerjah <jah@FreeBSD.org>2015-10-17 14:58:55 +0000
commita82fb7c8ee60cf1c00ba8e0ddc2b04a57c99db94 (patch)
tree89468acec507d896f7643d86c0a3f0a50b85a499 /sys/x86
parent8fbeca388aeeec742a6758d69f01c3d29265bb16 (diff)
downloadFreeBSD-src-a82fb7c8ee60cf1c00ba8e0ddc2b04a57c99db94.zip
FreeBSD-src-a82fb7c8ee60cf1c00ba8e0ddc2b04a57c99db94.tar.gz
Don't page-align the physical address when calling PHYS_TO_VM_PAGE().
M busdma_bounce.c
Diffstat (limited to 'sys/x86')
-rw-r--r--sys/x86/x86/busdma_bounce.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/x86/x86/busdma_bounce.c b/sys/x86/x86/busdma_bounce.c
index 48f9bb3..cac6c71 100644
--- a/sys/x86/x86/busdma_bounce.c
+++ b/sys/x86/x86/busdma_bounce.c
@@ -1006,7 +1006,8 @@ add_bounce_page(bus_dma_tag_t dmat, bus_dmamap_t map, vm_offset_t vaddr,
bpage->busaddr |= addr & PAGE_MASK;
}
bpage->datavaddr = vaddr;
- bpage->datapage = PHYS_TO_VM_PAGE(addr & ~PAGE_MASK);
+ /* PHYS_TO_VM_PAGE() will truncate unaligned addresses. */
+ bpage->datapage = PHYS_TO_VM_PAGE(addr);
bpage->dataoffs = addr & PAGE_MASK;
bpage->datacount = size;
STAILQ_INSERT_TAIL(&(map->bpages), bpage, links);
OpenPOWER on IntegriCloud