[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] linux: Add trivial forwarding of dma_{, un}map_page when not using highmem
# HG changeset patch # User kfraser@xxxxxxxxxxxxxxxxxxxxx # Date 1168616152 0 # Node ID c149ffa2fd1a0517d5e020d5c65e49413009d079 # Parent ed73ff8440d8077fdd9b2e3cd93cd753a81d4021 linux: Add trivial forwarding of dma_{,un}map_page when not using highmem Use non-trivial dma_{un,}map_page only when CONFIG_HIGHMEM, allowing to not compile swiotlb_{un,}map_page in that case, which in neither case need exporting. Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx> --- linux-2.6-xen-sparse/arch/i386/kernel/pci-dma-xen.c | 10 ++-------- linux-2.6-xen-sparse/arch/i386/kernel/swiotlb.c | 6 ++++-- linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/dma-mapping.h | 6 ++++++ linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/swiotlb.h | 2 ++ 4 files changed, 14 insertions(+), 10 deletions(-) diff -r ed73ff8440d8 -r c149ffa2fd1a linux-2.6-xen-sparse/arch/i386/kernel/pci-dma-xen.c --- a/linux-2.6-xen-sparse/arch/i386/kernel/pci-dma-xen.c Fri Jan 12 15:34:30 2007 +0000 +++ b/linux-2.6-xen-sparse/arch/i386/kernel/pci-dma-xen.c Fri Jan 12 15:35:52 2007 +0000 @@ -94,13 +94,7 @@ dma_unmap_sg(struct device *hwdev, struc } EXPORT_SYMBOL(dma_unmap_sg); -/* - * XXX This file is also used by xenLinux/ia64. - * "defined(__i386__) || defined (__x86_64__)" means "!defined(__ia64__)". - * This #if work around should be removed once this file is merbed back into - * i386' pci-dma or is moved to drivers/xen/core. - */ -#if defined(__i386__) || defined(__x86_64__) +#ifdef CONFIG_HIGHMEM dma_addr_t dma_map_page(struct device *dev, struct page *page, unsigned long offset, size_t size, enum dma_data_direction direction) @@ -130,7 +124,7 @@ dma_unmap_page(struct device *dev, dma_a swiotlb_unmap_page(dev, dma_address, size, direction); } EXPORT_SYMBOL(dma_unmap_page); -#endif /* defined(__i386__) || defined(__x86_64__) */ +#endif /* CONFIG_HIGHMEM */ int dma_mapping_error(dma_addr_t dma_addr) diff -r ed73ff8440d8 -r c149ffa2fd1a linux-2.6-xen-sparse/arch/i386/kernel/swiotlb.c --- a/linux-2.6-xen-sparse/arch/i386/kernel/swiotlb.c Fri Jan 12 15:34:30 2007 +0000 +++ b/linux-2.6-xen-sparse/arch/i386/kernel/swiotlb.c Fri Jan 12 15:35:52 2007 +0000 @@ -647,6 +647,8 @@ swiotlb_sync_sg_for_device(struct device sg->dma_length, dir); } +#ifdef CONFIG_HIGHMEM + dma_addr_t swiotlb_map_page(struct device *hwdev, struct page *page, unsigned long offset, size_t size, @@ -680,6 +682,8 @@ swiotlb_unmap_page(struct device *hwdev, unmap_single(hwdev, bus_to_virt(dma_address), size, direction); } +#endif + int swiotlb_dma_mapping_error(dma_addr_t dma_addr) { @@ -707,7 +711,5 @@ EXPORT_SYMBOL(swiotlb_sync_single_for_de EXPORT_SYMBOL(swiotlb_sync_single_for_device); EXPORT_SYMBOL(swiotlb_sync_sg_for_cpu); EXPORT_SYMBOL(swiotlb_sync_sg_for_device); -EXPORT_SYMBOL(swiotlb_map_page); -EXPORT_SYMBOL(swiotlb_unmap_page); EXPORT_SYMBOL(swiotlb_dma_mapping_error); EXPORT_SYMBOL(swiotlb_dma_supported); diff -r ed73ff8440d8 -r c149ffa2fd1a linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/dma-mapping.h --- a/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/dma-mapping.h Fri Jan 12 15:34:30 2007 +0000 +++ b/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/dma-mapping.h Fri Jan 12 15:35:52 2007 +0000 @@ -53,6 +53,7 @@ extern void dma_unmap_sg(struct device * extern void dma_unmap_sg(struct device *hwdev, struct scatterlist *sg, int nents, enum dma_data_direction direction); +#ifdef CONFIG_HIGHMEM extern dma_addr_t dma_map_page(struct device *dev, struct page *page, unsigned long offset, size_t size, enum dma_data_direction direction); @@ -60,6 +61,11 @@ extern void extern void dma_unmap_page(struct device *dev, dma_addr_t dma_address, size_t size, enum dma_data_direction direction); +#else +#define dma_map_page(dev, page, offset, size, dir) \ + dma_map_single(dev, page_address(page) + (offset), (size), (dir)) +#define dma_unmap_page dma_unmap_single +#endif extern void dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, size_t size, diff -r ed73ff8440d8 -r c149ffa2fd1a linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/swiotlb.h --- a/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/swiotlb.h Fri Jan 12 15:34:30 2007 +0000 +++ b/linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/swiotlb.h Fri Jan 12 15:35:52 2007 +0000 @@ -26,11 +26,13 @@ extern void swiotlb_unmap_sg(struct devi extern void swiotlb_unmap_sg(struct device *hwdev, struct scatterlist *sg, int nents, int direction); extern int swiotlb_dma_mapping_error(dma_addr_t dma_addr); +#ifdef CONFIG_HIGHMEM extern dma_addr_t swiotlb_map_page(struct device *hwdev, struct page *page, unsigned long offset, size_t size, enum dma_data_direction direction); extern void swiotlb_unmap_page(struct device *hwdev, dma_addr_t dma_address, size_t size, enum dma_data_direction direction); +#endif extern int swiotlb_dma_supported(struct device *hwdev, u64 mask); extern void swiotlb_init(void); _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |