summaryrefslogtreecommitdiffstats
path: root/arch/x86/xen
diff options
context:
space:
mode:
authorStefano Stabellini <stefano.stabellini@eu.citrix.com>2013-10-09 18:56:32 +0200
committerStefano Stabellini <stefano.stabellini@eu.citrix.com>2013-10-09 18:56:32 +0200
commit69908907b02efee31377af0cefbcd5a3ba66334a (patch)
tree7348359ef60c91ca9edfd71680a858f28a7d156e /arch/x86/xen
parentxen/x86: allow __set_phys_to_machine for autotranslate guests (diff)
downloadlinux-69908907b02efee31377af0cefbcd5a3ba66334a.tar.xz
linux-69908907b02efee31377af0cefbcd5a3ba66334a.zip
xen: make xen_create_contiguous_region return the dma address
Modify xen_create_contiguous_region to return the dma address of the newly contiguous buffer. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Acked-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Reviewed-by: David Vrabel <david.vrabel@citrix.com> Changes in v4: - use virt_to_machine instead of virt_to_bus.
Diffstat (limited to 'arch/x86/xen')
-rw-r--r--arch/x86/xen/mmu.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index fdc3ba28ca38..6c34d7c03d5b 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -2329,7 +2329,8 @@ static int xen_exchange_memory(unsigned long extents_in, unsigned int order_in,
}
int xen_create_contiguous_region(unsigned long vstart, unsigned int order,
- unsigned int address_bits)
+ unsigned int address_bits,
+ dma_addr_t *dma_handle)
{
unsigned long *in_frames = discontig_frames, out_frame;
unsigned long flags;
@@ -2368,6 +2369,7 @@ int xen_create_contiguous_region(unsigned long vstart, unsigned int order,
spin_unlock_irqrestore(&xen_reservation_lock, flags);
+ *dma_handle = virt_to_machine(vstart).maddr;
return success ? 0 : -ENOMEM;
}
EXPORT_SYMBOL_GPL(xen_create_contiguous_region);