linux/arch/x86_64/mm
Muli Ben-Yehuda 17a941d854 [PATCH] x86_64: Use function pointers to call DMA mapping functions
AK: I hacked Muli's original patch a lot and there were a lot
of changes - all bugs are probably to blame on me now.
There were also some changes in the fall back behaviour
for swiotlb - in particular it doesn't try to use GFP_DMA
now anymore. Also all DMA mapping operations use the
same core dma_alloc_coherent code with proper fallbacks now.
And various other changes and cleanups.

Known problems: iommu=force swiotlb=force together breaks
                needs more testing.

This patch cleans up x86_64's DMA mapping dispatching code. Right now
we have three possible IOMMU types: AGP GART, swiotlb and nommu, and
in the future we will also have Xen's x86_64 swiotlb and other HW
IOMMUs for x86_64. In order to support all of them cleanly, this
patch:

- introduces a struct dma_mapping_ops with function pointers for each
  of the DMA mapping operations of gart (AMD HW IOMMU), swiotlb
  (software IOMMU) and nommu (no IOMMU).

- gets rid of:

  if (swiotlb)
      return swiotlb_xxx();

- PCI_DMA_BUS_IS_PHYS is now checked against the dma_ops being set
This makes swiotlb faster by avoiding double copying in some cases.

Signed-Off-By: Muli Ben-Yehuda <mulix@mulix.org>
Signed-Off-By: Jon D. Mason <jdmason@us.ibm.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-11 19:04:55 -08:00
..
extable.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fault.c [PATCH] x86_64: Convert page fault error codes to symbolic constants. 2006-01-11 19:04:53 -08:00
init.c [PATCH] x86_64: Use function pointers to call DMA mapping functions 2006-01-11 19:04:55 -08:00
ioremap.c [PATCH] i386,amd64: ioremap.c __iomem annotations 2005-12-15 10:04:30 -08:00
k8topology.c [PATCH] x86_64: Make node boundaries consistent 2005-11-14 19:55:17 -08:00
Makefile [PATCH] reorganize x86-64 NUMA and DISCONTIGMEM config options 2005-06-23 09:45:06 -07:00
numa.c [PATCH] x86_64: Clean up some printks in NUMA code 2006-01-11 19:04:55 -08:00
pageattr.c [PATCH] x86/x86_64: mark rodata section read only: generic x86-64 bugfix 2006-01-06 08:33:36 -08:00
srat.c [PATCH] x86_64: Reject SRAT tables that don't cover all memory 2006-01-11 19:04:55 -08:00