Of all the DMA calls, only dma_alloc_coherent might not actually
call dma_ops->alloc_coherent. We make sure that gets called
if the device that's being worked on is a PV device

Signed-off-by: Amit Shah <[EMAIL PROTECTED]>
---
 arch/x86/kernel/pci-dma_64.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/arch/x86/kernel/pci-dma_64.c b/arch/x86/kernel/pci-dma_64.c
index aa805b1..d4b1713 100644
--- a/arch/x86/kernel/pci-dma_64.c
+++ b/arch/x86/kernel/pci-dma_64.c
@@ -11,6 +11,7 @@
 #include <asm/io.h>
 #include <asm/gart.h>
 #include <asm/calgary.h>
+#include <linux/kvm_para.h>
 
 int iommu_merge __read_mostly = 1;
 EXPORT_SYMBOL(iommu_merge);
@@ -134,6 +135,18 @@ dma_alloc_coherent(struct device *dev, size_t size, 
dma_addr_t *dma_handle,
                memset(memory, 0, size);
                if (!mmu) {
                        *dma_handle = virt_to_bus(memory);
+                       if (unlikely(dma_ops->is_pv_device)
+                           && unlikely(dma_ops->is_pv_device(dev, 
dev->bus_id))) {
+                               void *r;
+                               r = dma_ops->alloc_coherent(dev, size,
+                                                           dma_handle,
+                                                           gfp);
+                               if (r == NULL) {
+                                       free_pages((unsigned long)memory,
+                                                  get_order(size));
+                                       memory = NULL;
+                               }
+                       }
                        return memory;
                }
        }
-- 
1.5.3


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to