Messages in this thread | | | From | FUJITA Tomonori <> | Subject | [PATCH 0/3] unifying ways to handle multiple sets of dma mapping ops | Date | Mon, 5 Jan 2009 23:59:00 +0900 |
| |
This patchset is the final (third) part of the unification of ways to handle multiple sets of dma mapping API. The whole work consists of three patchset. This depends on IA64 and X86 preparation patchset:
The patchset for IA64:
http://marc.info/?l=linux-kernel&m=123116676006794&w=2
The patchset for X86:
http://marc.info/?l=linux-kernel&m=123116708307468&w=2
This adds struct dma_map_ops include/linux/dma-mapping.h and coverts IA64 and X86 to use it (and removes lots of duplication and workarounds). I use 'dma_map_ops' name instead dma_mapping_ops to just avoid breaking POWER build. I have no preference.
The second patch converts IA64 and X86 to use struct dma_map_ops. It's a bit large but pretty boring. The major change for X86 is converting 'int dir' to 'enum dma_data_direction dir' in DMA mapping operations. The major changes for IA64 is using map_page and unmap_page instead of map_single and unmap_single.
= arch/ia64/dig/Makefile | 4 +- arch/ia64/dig/dig_vtd_iommu.c | 59 -------- arch/ia64/hp/common/hwsw_iommu.c | 165 ++-------------------- arch/ia64/hp/common/sba_iommu.c | 79 ++++++++--- arch/ia64/include/asm/dma-mapping.h | 189 ++++++++++++++----------- arch/ia64/include/asm/machvec.h | 107 ++------------ arch/ia64/include/asm/machvec_dig_vtd.h | 20 --- arch/ia64/include/asm/machvec_hpzx1.h | 23 +--- arch/ia64/include/asm/machvec_hpzx1_swiotlb.h | 27 +---- arch/ia64/include/asm/machvec_sn2.h | 27 +---- arch/ia64/kernel/Makefile | 4 +- arch/ia64/kernel/dma-mapping.c | 10 ++ arch/ia64/kernel/machvec.c | 8 +- arch/ia64/kernel/pci-dma.c | 52 ++++--- arch/ia64/kernel/pci-swiotlb.c | 23 ++- arch/ia64/sn/pci/pci_dma.c | 99 +++++++------ arch/x86/include/asm/device.h | 2 +- arch/x86/include/asm/dma-mapping.h | 149 ++++++++------------ arch/x86/include/asm/iommu.h | 2 +- arch/x86/kernel/amd_iommu.c | 24 ++-- arch/x86/kernel/pci-calgary_64.c | 38 +++--- arch/x86/kernel/pci-dma.c | 4 +- arch/x86/kernel/pci-gart_64.c | 34 +++-- arch/x86/kernel/pci-nommu.c | 21 ++-- arch/x86/kernel/pci-swiotlb_64.c | 17 +-- drivers/pci/intel-iommu.c | 31 +++- include/linux/dma-mapping.h | 48 +++++++ include/linux/intel-iommu.h | 6 +- include/linux/swiotlb.h | 39 +++--- lib/swiotlb.c | 66 ++++----- 30 files changed, 569 insertions(+), 808 deletions(-)
| |