diff options
author | jah <jah@FreeBSD.org> | 2015-10-17 14:58:55 +0000 |
---|---|---|
committer | jah <jah@FreeBSD.org> | 2015-10-17 14:58:55 +0000 |
commit | a82fb7c8ee60cf1c00ba8e0ddc2b04a57c99db94 (patch) | |
tree | 89468acec507d896f7643d86c0a3f0a50b85a499 /sys/x86 | |
parent | 8fbeca388aeeec742a6758d69f01c3d29265bb16 (diff) | |
download | FreeBSD-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.c | 3 |
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); |