# HG changeset patch # User yamahata@xxxxxxxxxxxxx # Date 1181963530 -32400 # Node ID f332571e5db31e0baf51f0bfebc3108444e7bb43 # Parent a5eacab344e98b347f35f73d6a096e34f207946e linux ia64 swiotlb: clean up. avoid unnecessary address conversion PATCHNAME: gnttab_dma_clean_up Signed-off-by: Isaku Yamahata diff -r a5eacab344e9 -r f332571e5db3 arch/ia64/xen/swiotlb.c --- a/arch/ia64/xen/swiotlb.c Tue May 22 15:26:11 2007 +0900 +++ b/arch/ia64/xen/swiotlb.c Sat Jun 16 12:12:10 2007 +0900 @@ -676,7 +676,7 @@ swiotlb_unmap_single(struct device *hwde if (dma_addr >= io_tlb_start && dma_addr < io_tlb_end) unmap_single(hwdev, dma_addr, size, dir); else { - gnttab_dma_unmap_page(dev_addr); + __gnttab_dma_unmap_page(virt_to_page(dma_addr)); if (dir == DMA_FROM_DEVICE) mark_clean(dma_addr, size); } @@ -783,7 +783,7 @@ swiotlb_map_sg(struct device *hwdev, str dev_addr = gnttab_dma_map_virt(addr); if (swiotlb_force || address_needs_mapping(hwdev, dev_addr)) { void *map; - gnttab_dma_unmap_page(dev_addr); + __gnttab_dma_unmap_page(sg->page); map = map_single(hwdev, addr, sg->length, dir); sg->dma_address = virt_to_bus(map); if (!map) { @@ -817,7 +817,7 @@ swiotlb_unmap_sg(struct device *hwdev, s if (sg->dma_address != SG_ENT_PHYS_ADDRESS(sg)) unmap_single(hwdev, (void *) bus_to_virt(sg->dma_address), sg->dma_length, dir); else { - gnttab_dma_unmap_page(sg->dma_address); + __gnttab_dma_unmap_page(sg->page); if (dir == DMA_FROM_DEVICE) mark_clean(SG_ENT_VIRT_ADDRESS(sg), sg->dma_length);