[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] question on c/s 15181



Herbert, are the changes below to use in_swiotlb_aperture() strictly necessary?
They get us further away from native code, so I wonder if, for the purpose of
being as close as possible to native, these could be reverted (in a larger patch
that would get us closer to native in many other respects).

Jan

********************************************************

@@ -605,10 +610,12 @@ swiotlb_unmap_sg(struct device *hwdev, s
        BUG_ON(dir == DMA_NONE);
 
        for (i = 0; i < nelems; i++, sg++)
-               if (sg->dma_address != SG_ENT_PHYS_ADDRESS(sg))
+               if (in_swiotlb_aperture(sg->dma_address))
                        unmap_single(hwdev, 
                                     (void *)bus_to_virt(sg->dma_address),
                                     sg->dma_length, dir);
+               else
+                       gnttab_dma_unmap_page(sg->dma_address);
 }
 
 /*
@@ -627,7 +634,7 @@ swiotlb_sync_sg_for_cpu(struct device *h
        BUG_ON(dir == DMA_NONE);
 
        for (i = 0; i < nelems; i++, sg++)
-               if (sg->dma_address != SG_ENT_PHYS_ADDRESS(sg))
+               if (in_swiotlb_aperture(sg->dma_address))
                        sync_single(hwdev,
                                    (void *)bus_to_virt(sg->dma_address),
                                    sg->dma_length, dir);
@@ -642,7 +649,7 @@ swiotlb_sync_sg_for_device(struct device
        BUG_ON(dir == DMA_NONE);
 
        for (i = 0; i < nelems; i++, sg++)
-               if (sg->dma_address != SG_ENT_PHYS_ADDRESS(sg))
+               if (in_swiotlb_aperture(sg->dma_address))
                        sync_single(hwdev,
                                    (void *)bus_to_virt(sg->dma_address),
                                    sg->dma_length, dir);



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.