* [PATCH 0/3] swiotlb cleanups @ 2008-12-28 6:02 FUJITA Tomonori 2008-12-28 6:02 ` [PATCH 1/3] replace architecture-specific swiotlb.h with linux/swiotlb.h FUJITA Tomonori 2008-12-28 9:05 ` [PATCH 0/3] swiotlb cleanups Ingo Molnar 0 siblings, 2 replies; 7+ messages in thread From: FUJITA Tomonori @ 2008-12-28 6:02 UTC (permalink / raw) To: linux-kernel; +Cc: mingo, tony.luck, fujita.tomonori This is minor swiotlb cleanups. It depends on the swiotlb highmem patchset: git://git.kernel.org/pub/scm/linux/kernel/git/tomo/linux-2.6-misc.git swiotlb ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/3] replace architecture-specific swiotlb.h with linux/swiotlb.h 2008-12-28 6:02 [PATCH 0/3] swiotlb cleanups FUJITA Tomonori @ 2008-12-28 6:02 ` FUJITA Tomonori 2008-12-28 6:02 ` [PATCH 2/3] swiotlb: remove unnecessary declaration FUJITA Tomonori 2008-12-28 9:05 ` [PATCH 0/3] swiotlb cleanups Ingo Molnar 1 sibling, 1 reply; 7+ messages in thread From: FUJITA Tomonori @ 2008-12-28 6:02 UTC (permalink / raw) To: linux-kernel; +Cc: mingo, tony.luck, fujita.tomonori This replaces architecture-specific swiotlb.h (X86 and IA64) with linux/swiotlb.h. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> --- arch/ia64/include/asm/swiotlb.h | 39 +-------------------------------------- arch/x86/include/asm/swiotlb.h | 38 +------------------------------------- 2 files changed, 2 insertions(+), 75 deletions(-) diff --git a/arch/ia64/include/asm/swiotlb.h b/arch/ia64/include/asm/swiotlb.h index fb79423..dcbaea7 100644 --- a/arch/ia64/include/asm/swiotlb.h +++ b/arch/ia64/include/asm/swiotlb.h @@ -2,44 +2,7 @@ #define ASM_IA64__SWIOTLB_H #include <linux/dma-mapping.h> - -/* SWIOTLB interface */ - -extern dma_addr_t swiotlb_map_single(struct device *hwdev, void *ptr, - size_t size, int dir); -extern void *swiotlb_alloc_coherent(struct device *hwdev, size_t size, - dma_addr_t *dma_handle, gfp_t flags); -extern void swiotlb_unmap_single(struct device *hwdev, dma_addr_t dev_addr, - size_t size, int dir); -extern void swiotlb_sync_single_for_cpu(struct device *hwdev, - dma_addr_t dev_addr, - size_t size, int dir); -extern void swiotlb_sync_single_for_device(struct device *hwdev, - dma_addr_t dev_addr, - size_t size, int dir); -extern void swiotlb_sync_single_range_for_cpu(struct device *hwdev, - dma_addr_t dev_addr, - unsigned long offset, - size_t size, int dir); -extern void swiotlb_sync_single_range_for_device(struct device *hwdev, - dma_addr_t dev_addr, - unsigned long offset, - size_t size, int dir); -extern void swiotlb_sync_sg_for_cpu(struct device *hwdev, - struct scatterlist *sg, int nelems, - int dir); -extern void swiotlb_sync_sg_for_device(struct device *hwdev, - struct scatterlist *sg, int nelems, - int dir); -extern int swiotlb_map_sg(struct device *hwdev, struct scatterlist *sg, - int nents, int direction); -extern void swiotlb_unmap_sg(struct device *hwdev, struct scatterlist *sg, - int nents, int direction); -extern int swiotlb_dma_mapping_error(struct device *hwdev, dma_addr_t dma_addr); -extern void swiotlb_free_coherent(struct device *hwdev, size_t size, - void *vaddr, dma_addr_t dma_handle); -extern int swiotlb_dma_supported(struct device *hwdev, u64 mask); -extern void swiotlb_init(void); +#include <linux/swiotlb.h> extern int swiotlb_force; diff --git a/arch/x86/include/asm/swiotlb.h b/arch/x86/include/asm/swiotlb.h index 51fb2c7..b9e4e20 100644 --- a/arch/x86/include/asm/swiotlb.h +++ b/arch/x86/include/asm/swiotlb.h @@ -1,46 +1,10 @@ #ifndef _ASM_X86_SWIOTLB_H #define _ASM_X86_SWIOTLB_H -#include <asm/dma-mapping.h> +#include <linux/swiotlb.h> /* SWIOTLB interface */ -extern dma_addr_t swiotlb_map_single(struct device *hwdev, void *ptr, - size_t size, int dir); -extern void *swiotlb_alloc_coherent(struct device *hwdev, size_t size, - dma_addr_t *dma_handle, gfp_t flags); -extern void swiotlb_unmap_single(struct device *hwdev, dma_addr_t dev_addr, - size_t size, int dir); -extern void swiotlb_sync_single_for_cpu(struct device *hwdev, - dma_addr_t dev_addr, - size_t size, int dir); -extern void swiotlb_sync_single_for_device(struct device *hwdev, - dma_addr_t dev_addr, - size_t size, int dir); -extern void swiotlb_sync_single_range_for_cpu(struct device *hwdev, - dma_addr_t dev_addr, - unsigned long offset, - size_t size, int dir); -extern void swiotlb_sync_single_range_for_device(struct device *hwdev, - dma_addr_t dev_addr, - unsigned long offset, - size_t size, int dir); -extern void swiotlb_sync_sg_for_cpu(struct device *hwdev, - struct scatterlist *sg, int nelems, - int dir); -extern void swiotlb_sync_sg_for_device(struct device *hwdev, - struct scatterlist *sg, int nelems, - int dir); -extern int swiotlb_map_sg(struct device *hwdev, struct scatterlist *sg, - int nents, int direction); -extern void swiotlb_unmap_sg(struct device *hwdev, struct scatterlist *sg, - int nents, int direction); -extern int swiotlb_dma_mapping_error(struct device *hwdev, dma_addr_t dma_addr); -extern void swiotlb_free_coherent(struct device *hwdev, size_t size, - void *vaddr, dma_addr_t dma_handle); -extern int swiotlb_dma_supported(struct device *hwdev, u64 mask); -extern void swiotlb_init(void); - extern int swiotlb_force; #ifdef CONFIG_SWIOTLB -- 1.5.5.GIT ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/3] swiotlb: remove unnecessary declaration 2008-12-28 6:02 ` [PATCH 1/3] replace architecture-specific swiotlb.h with linux/swiotlb.h FUJITA Tomonori @ 2008-12-28 6:02 ` FUJITA Tomonori 2008-12-28 6:02 ` [PATCH 3/3] swiotlb: clean up EXPORT_SYMBOL usage FUJITA Tomonori 0 siblings, 1 reply; 7+ messages in thread From: FUJITA Tomonori @ 2008-12-28 6:02 UTC (permalink / raw) To: linux-kernel; +Cc: mingo, tony.luck, fujita.tomonori Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> --- lib/swiotlb.c | 3 --- 1 files changed, 0 insertions(+), 3 deletions(-) diff --git a/lib/swiotlb.c b/lib/swiotlb.c index 1a9d194..db94378 100644 --- a/lib/swiotlb.c +++ b/lib/swiotlb.c @@ -22,7 +22,6 @@ #include <linux/mm.h> #include <linux/module.h> #include <linux/spinlock.h> -#include <linux/swiotlb.h> #include <linux/string.h> #include <linux/swiotlb.h> #include <linux/pfn.h> @@ -779,8 +778,6 @@ swiotlb_sync_single_range_for_device(struct device *hwdev, dma_addr_t dev_addr, SYNC_FOR_DEVICE); } -void swiotlb_unmap_sg_attrs(struct device *, struct scatterlist *, int, int, - struct dma_attrs *); /* * Map a set of buffers described by scatterlist in streaming mode for DMA. * This is the scatter-gather version of the above swiotlb_map_single -- 1.5.5.GIT ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 3/3] swiotlb: clean up EXPORT_SYMBOL usage 2008-12-28 6:02 ` [PATCH 2/3] swiotlb: remove unnecessary declaration FUJITA Tomonori @ 2008-12-28 6:02 ` FUJITA Tomonori 0 siblings, 0 replies; 7+ messages in thread From: FUJITA Tomonori @ 2008-12-28 6:02 UTC (permalink / raw) To: linux-kernel; +Cc: mingo, tony.luck, fujita.tomonori swiotlb uses EXPORT_SYMBOL in an inconsistent way. Some functions use EXPORT_SYMBOL at the end of functions. Some use it at the end of swiotlb.c. This cleans up swiotlb to use EXPORT_SYMBOL in a consistent way (at the end of functions). Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> --- lib/swiotlb.c | 28 ++++++++++++++-------------- 1 files changed, 14 insertions(+), 14 deletions(-) diff --git a/lib/swiotlb.c b/lib/swiotlb.c index db94378..ad6abad 100644 --- a/lib/swiotlb.c +++ b/lib/swiotlb.c @@ -595,6 +595,7 @@ swiotlb_alloc_coherent(struct device *hwdev, size_t size, *dma_handle = dev_addr; return ret; } +EXPORT_SYMBOL(swiotlb_alloc_coherent); void swiotlb_free_coherent(struct device *hwdev, size_t size, void *vaddr, @@ -607,6 +608,7 @@ swiotlb_free_coherent(struct device *hwdev, size_t size, void *vaddr, /* DMA_TO_DEVICE to avoid memcpy in unmap_single */ unmap_single(hwdev, vaddr, size, DMA_TO_DEVICE); } +EXPORT_SYMBOL(swiotlb_free_coherent); static void swiotlb_full(struct device *dev, size_t size, int dir, int do_panic) @@ -679,6 +681,7 @@ swiotlb_map_single(struct device *hwdev, void *ptr, size_t size, int dir) { return swiotlb_map_single_attrs(hwdev, ptr, size, dir, NULL); } +EXPORT_SYMBOL(swiotlb_map_single); /* * Unmap a single streaming mode DMA translation. The dma_addr and size must @@ -708,6 +711,8 @@ swiotlb_unmap_single(struct device *hwdev, dma_addr_t dev_addr, size_t size, { return swiotlb_unmap_single_attrs(hwdev, dev_addr, size, dir, NULL); } +EXPORT_SYMBOL(swiotlb_unmap_single); + /* * Make physical memory consistent for a single streaming mode DMA translation * after a transfer. @@ -737,6 +742,7 @@ swiotlb_sync_single_for_cpu(struct device *hwdev, dma_addr_t dev_addr, { swiotlb_sync_single(hwdev, dev_addr, size, dir, SYNC_FOR_CPU); } +EXPORT_SYMBOL(swiotlb_sync_single_for_cpu); void swiotlb_sync_single_for_device(struct device *hwdev, dma_addr_t dev_addr, @@ -744,6 +750,7 @@ swiotlb_sync_single_for_device(struct device *hwdev, dma_addr_t dev_addr, { swiotlb_sync_single(hwdev, dev_addr, size, dir, SYNC_FOR_DEVICE); } +EXPORT_SYMBOL(swiotlb_sync_single_for_device); /* * Same as above, but for a sub-range of the mapping. @@ -769,6 +776,7 @@ swiotlb_sync_single_range_for_cpu(struct device *hwdev, dma_addr_t dev_addr, swiotlb_sync_single_range(hwdev, dev_addr, offset, size, dir, SYNC_FOR_CPU); } +EXPORT_SYMBOL_GPL(swiotlb_sync_single_range_for_cpu); void swiotlb_sync_single_range_for_device(struct device *hwdev, dma_addr_t dev_addr, @@ -777,6 +785,7 @@ swiotlb_sync_single_range_for_device(struct device *hwdev, dma_addr_t dev_addr, swiotlb_sync_single_range(hwdev, dev_addr, offset, size, dir, SYNC_FOR_DEVICE); } +EXPORT_SYMBOL_GPL(swiotlb_sync_single_range_for_device); /* * Map a set of buffers described by scatterlist in streaming mode for DMA. @@ -835,6 +844,7 @@ swiotlb_map_sg(struct device *hwdev, struct scatterlist *sgl, int nelems, { return swiotlb_map_sg_attrs(hwdev, sgl, nelems, dir, NULL); } +EXPORT_SYMBOL(swiotlb_map_sg); /* * Unmap a set of streaming mode DMA translations. Again, cpu read rules @@ -865,6 +875,7 @@ swiotlb_unmap_sg(struct device *hwdev, struct scatterlist *sgl, int nelems, { return swiotlb_unmap_sg_attrs(hwdev, sgl, nelems, dir, NULL); } +EXPORT_SYMBOL(swiotlb_unmap_sg); /* * Make physical memory consistent for a set of streaming mode DMA translations @@ -897,6 +908,7 @@ swiotlb_sync_sg_for_cpu(struct device *hwdev, struct scatterlist *sg, { swiotlb_sync_sg(hwdev, sg, nelems, dir, SYNC_FOR_CPU); } +EXPORT_SYMBOL(swiotlb_sync_sg_for_cpu); void swiotlb_sync_sg_for_device(struct device *hwdev, struct scatterlist *sg, @@ -904,12 +916,14 @@ swiotlb_sync_sg_for_device(struct device *hwdev, struct scatterlist *sg, { swiotlb_sync_sg(hwdev, sg, nelems, dir, SYNC_FOR_DEVICE); } +EXPORT_SYMBOL(swiotlb_sync_sg_for_device); int swiotlb_dma_mapping_error(struct device *hwdev, dma_addr_t dma_addr) { return (dma_addr == swiotlb_virt_to_bus(hwdev, io_tlb_overflow_buffer)); } +EXPORT_SYMBOL(swiotlb_dma_mapping_error); /* * Return whether the given device DMA address mask can be supported @@ -922,18 +936,4 @@ swiotlb_dma_supported(struct device *hwdev, u64 mask) { return swiotlb_virt_to_bus(hwdev, io_tlb_end - 1) <= mask; } - -EXPORT_SYMBOL(swiotlb_map_single); -EXPORT_SYMBOL(swiotlb_unmap_single); -EXPORT_SYMBOL(swiotlb_map_sg); -EXPORT_SYMBOL(swiotlb_unmap_sg); -EXPORT_SYMBOL(swiotlb_sync_single_for_cpu); -EXPORT_SYMBOL(swiotlb_sync_single_for_device); -EXPORT_SYMBOL_GPL(swiotlb_sync_single_range_for_cpu); -EXPORT_SYMBOL_GPL(swiotlb_sync_single_range_for_device); -EXPORT_SYMBOL(swiotlb_sync_sg_for_cpu); -EXPORT_SYMBOL(swiotlb_sync_sg_for_device); -EXPORT_SYMBOL(swiotlb_dma_mapping_error); -EXPORT_SYMBOL(swiotlb_alloc_coherent); -EXPORT_SYMBOL(swiotlb_free_coherent); EXPORT_SYMBOL(swiotlb_dma_supported); -- 1.5.5.GIT ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 0/3] swiotlb cleanups 2008-12-28 6:02 [PATCH 0/3] swiotlb cleanups FUJITA Tomonori 2008-12-28 6:02 ` [PATCH 1/3] replace architecture-specific swiotlb.h with linux/swiotlb.h FUJITA Tomonori @ 2008-12-28 9:05 ` Ingo Molnar 2008-12-28 9:36 ` FUJITA Tomonori 1 sibling, 1 reply; 7+ messages in thread From: Ingo Molnar @ 2008-12-28 9:05 UTC (permalink / raw) To: FUJITA Tomonori Cc: linux-kernel, tony.luck, Jeremy Fitzhardinge, Joerg Roedel, Becky Bruce * FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> wrote: > This is minor swiotlb cleanups. It depends on the swiotlb highmem > patchset: > > git://git.kernel.org/pub/scm/linux/kernel/git/tomo/linux-2.6-misc.git swiotlb thanks, applied them to tip/core/iommu - after Becky's patchset as ported by Jeremy. Ingo ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 0/3] swiotlb cleanups 2008-12-28 9:05 ` [PATCH 0/3] swiotlb cleanups Ingo Molnar @ 2008-12-28 9:36 ` FUJITA Tomonori 2008-12-28 9:45 ` Ingo Molnar 0 siblings, 1 reply; 7+ messages in thread From: FUJITA Tomonori @ 2008-12-28 9:36 UTC (permalink / raw) To: mingo Cc: fujita.tomonori, linux-kernel, tony.luck, jeremy, joerg.roedel, beckyb On Sun, 28 Dec 2008 10:05:37 +0100 Ingo Molnar <mingo@elte.hu> wrote: > > * FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> wrote: > > > This is minor swiotlb cleanups. It depends on the swiotlb highmem > > patchset: > > > > git://git.kernel.org/pub/scm/linux/kernel/git/tomo/linux-2.6-misc.git swiotlb > > thanks, applied them to tip/core/iommu - after Becky's patchset as ported > by Jeremy. Thanks, The log of tip/core/iommu looks really wired. Two patches claim to add highmem support to swioblb. Becky completely reverts the Jeremy's and does in a different way without any description. As I wrote, I recommend you to reorder the patches. There is no point to merge Jeremy's highmem patch. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 0/3] swiotlb cleanups 2008-12-28 9:36 ` FUJITA Tomonori @ 2008-12-28 9:45 ` Ingo Molnar 0 siblings, 0 replies; 7+ messages in thread From: Ingo Molnar @ 2008-12-28 9:45 UTC (permalink / raw) To: FUJITA Tomonori; +Cc: linux-kernel, tony.luck, jeremy, joerg.roedel, beckyb * FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> wrote: > On Sun, 28 Dec 2008 10:05:37 +0100 > Ingo Molnar <mingo@elte.hu> wrote: > > > > > * FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> wrote: > > > > > This is minor swiotlb cleanups. It depends on the swiotlb highmem > > > patchset: > > > > > > git://git.kernel.org/pub/scm/linux/kernel/git/tomo/linux-2.6-misc.git swiotlb > > > > thanks, applied them to tip/core/iommu - after Becky's patchset as ported > > by Jeremy. > > Thanks, > > The log of tip/core/iommu looks really wired. Two patches claim to add > highmem support to swioblb. Becky completely reverts the Jeremy's and > does in a different way without any description. one is Jeremy's that was tested on Xen. The other is Becky's stuff - that also extends it to powerpc - that is not yet fully tested though. > As I wrote, I recommend you to reorder the patches. There is no point to > merge Jeremy's highmem patch. "reordering" commits is not acceptable at this stage, we do append-only steps. If you can see any bug in the end result, let us know. Ingo ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2008-12-28 9:45 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2008-12-28 6:02 [PATCH 0/3] swiotlb cleanups FUJITA Tomonori 2008-12-28 6:02 ` [PATCH 1/3] replace architecture-specific swiotlb.h with linux/swiotlb.h FUJITA Tomonori 2008-12-28 6:02 ` [PATCH 2/3] swiotlb: remove unnecessary declaration FUJITA Tomonori 2008-12-28 6:02 ` [PATCH 3/3] swiotlb: clean up EXPORT_SYMBOL usage FUJITA Tomonori 2008-12-28 9:05 ` [PATCH 0/3] swiotlb cleanups Ingo Molnar 2008-12-28 9:36 ` FUJITA Tomonori 2008-12-28 9:45 ` Ingo Molnar
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox