public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [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