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