On 13 Jul 2005, at 20:51, David Muench wrote:
Well, life got in the way and I didn't try this fix until just now..
But it works! I'm going to get my mythtv setup moved into the domU so
I can test it completely, but it seems to work perfectly.
Thank you very, very much. Is removing the conditionals a permanent
solution that can be commited, or is there anything else you'd like me
to test?
I believe the code as checked in is strictly correct, but maybe we can
relax things a little. What happens if you leave the direction tests in
dma_map_single and dma_unmap_single, but remove them from
dma_sync_single_for_cpu and dma_sync_single_for_device?
If the above works, leave the direction tests in the new modified form;
otherwise revert to the previous working state (ie. direction tests
removed from all four functions). Either way, another thing that is
interesting to try is the following:
(1) At the start of dma_sync_single_for_cpu add:
if (direction == DMA_TO_DEVICE)
dma_sync_single_for_device(dev, dma_handle, size, direction);
(2) At the start of dma_sync_single_for_device add:
if (direction == DMA_FROM_DEVICE)
dma_sync_single_for_cpu(dev, dma_handle, size, direction);
This will make the sync functions behave as they do in the ARM
architecture, which also uses bounce buffers but has at least been
looked over by the core kernel DMA guys.
-- Keir
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|