]> xenbits.xensource.com Git - people/julieng/freebsd.git/commitdiff
Don't page-align the physical address when calling PHYS_TO_VM_PAGE().
authorjah <jah@FreeBSD.org>
Sat, 17 Oct 2015 14:58:55 +0000 (14:58 +0000)
committerjah <jah@FreeBSD.org>
Sat, 17 Oct 2015 14:58:55 +0000 (14:58 +0000)
M    busdma_bounce.c

sys/x86/x86/busdma_bounce.c

index 48f9bb317878274729ace63df57e513d55882752..cac6c7158caa89fd969dce7dfedadd9f730de3ed 100644 (file)
@@ -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);