|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] [linux-2.6.18-xen] [IA64] counter part of 99:f15643dab1c
# 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
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [linux-2.6.18-xen] [IA64] counter part of 99:f15643dab1ca,
Xen patchbot-linux-2.6.18-xen <=
|
|
|
|
|