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

[Xen-changelog] [linux-2.6.18-xen] [IA64] counter part of 99:f15643dab1ca



# HG changeset patch
# User Alex Williamson <alex.williamson@xxxxxx>
# Date 1184528649 21600
# Node ID 34d01b3157e213516f599f11fc5379624c51a2d9
# Parent  b020961f6c1f25086fc47b16dc74724c2e3c4e96
[IA64] counter part of 99:f15643dab1ca

"swiotlb: Handle sync invocations on subregions of a mapped region."

Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
---
 arch/ia64/xen/swiotlb.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletion(-)

diff -r b020961f6c1f -r 34d01b3157e2 arch/ia64/xen/swiotlb.c
--- a/arch/ia64/xen/swiotlb.c   Sun Jul 15 13:38:06 2007 -0600
+++ b/arch/ia64/xen/swiotlb.c   Sun Jul 15 13:44:09 2007 -0600
@@ -336,6 +336,7 @@ map_single(struct device *hwdev, char *b
        unsigned long flags;
        char *dma_addr;
        unsigned int nslots, stride, index, wrap;
+       char *slot_buf;
        int i;
 
        /*
@@ -402,7 +403,11 @@ map_single(struct device *hwdev, char *b
         * This is needed when we sync the memory.  Then we sync the buffer if
         * needed.
         */
-       io_tlb_orig_addr[index] = buffer;
+       slot_buf = buffer;
+       for (i = 0; i < nslots; i++) {
+               io_tlb_orig_addr[index + i] = slot_buf;
+               slot_buf += 1 << IO_TLB_SHIFT;
+       }
        if (dir == DMA_TO_DEVICE || dir == DMA_BIDIRECTIONAL)
                memcpy(dma_addr, buffer, size);
 

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


 


Rackspace

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