Hi Linus, As promised yesterday, the patch series done by Bart is now ready to go. I've prepared for you two options: 1) Take my merge branch. I took your master from this morning and merged in my original branch for this work, fixing up merge conflicts in the merge commit and then adding one new commit because the bnxt_re driver was not in mainline when Bart did his work and so it was missed. This code can be found at: git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma.git tags/for-linus or 2) Take the original series as is and perform the fixups yourself (they really aren't hard, and I detailed what they were in the log portion of my merge commit in the above branch). It can be found at: git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma.git tags/for-next-dma_ops I just completed the merge, so it hasn't been through 0day or linux- next (it has passed local build tests though). The original branch has been through 0day, but I don't think it went through linux-next as I don't think Stephen pulls my for-next-* tags, just the base for-next tag (I've email him to see if we can change that, but haven't heard back yet). I'll include the boilerplate that git request-pull spits out from option #1. For option #2 it's identical minus my two commits. The following changes since commit f1ef09fde17f9b77ca1435a5b53a28b203afb81c: Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace (2017-02-23 20:33:51 -0800) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma.git tags/for-linus for you to fetch changes up to 87a5da90d0c69de7102a3617115e0bb21e43ebfb: RDMA/bnxt_re: Switch from dma_device to dev.parent (2017-02-24 14:04:44 -0500) ---------------------------------------------------------------- Drop IB DMA mapping code and use core DMA code instead Bart Van Assche noted that the IB DMA mapping code was significantly similar enough to the core DMA mapping code that with a few changes it was possible to remove the IB DMA mapping code entirely and switch the RDMA stack to use the core DMA mapping code. This resulted in a nice set of cleanups, but touched the entire tree, and so is being submitted on its own. This has been merged up to current master, and fixups for merge conflicts, as well as adding a patch for the bnxt_re driver which wasn't in mainline when Bart did his work, have been done. ---------------------------------------------------------------- Bart Van Assche (37): treewide: Constify most dma_map_ops structures treewide: Move dma_ops from struct dev_archdata into struct device treewide: Consolidate set_dma_ops() implementations treewide: Consolidate get_dma_ops() implementations lib/dma-noop: Clarify a comment lib/dma-noop: Only build dma_noop_ops for s390 and m32r lib/dma-virt: Add dma_virt_ops IB/core: Remove ib_dma_*map_single_attrs() RDS: IB: Remove an unused structure member IB/core: Change the type of an ib_dma_alloc_coherent() argument IB/hf1: Remove DMA mapping code IB/qib: Remove DMA mapping code IB/core: Initialize ib_device.dev.parent earlier IB/core: Use dev.parent instead of dma_device IB/cxgb3: Set dev.parent instead of dma_device IB/cxgb4: Set dev.parent instead of dma_device IB/hfi1: Switch from dma_device to dev.parent IB/hns: Switch from dma_device to dev.parent IB/i40iw: Remove a superfluous assignment statement IB/mlx4: Switch from dma_device to dev.parent IB/mlx5: Switch from dma_device to dev.parent IB/mthca: Switch from dma_device to dev.parent IB/nes: Remove a superfluous assignment statement IB/ocrdma: Switch from dma_device to dev.parent IB/qedr: Switch from dma_device to dev.parent IB/qib: Switch from dma_device to dev.parent IB/usnic: Switch from dma_device to dev.parent IB/vmw_pvrdma: Switch from dma_device to dev.parent IB/rxe: Switch from dma_device to dev.parent IB/IPoIB: Switch from dma_device to dev.parent IB/iser: Switch from dma_device to dev.parent IB/srp: Switch from dma_device to dev.parent IB/srpt: Modify a debug statement RDS: net: Switch from dma_device to dev.parent nvme-rdma: Switch from dma_device to dev.parent IB/core: Remove ib_device.dma_device IB/rxe, IB/rdmavt: Use dma_virt_ops instead of duplicating it Doug Ledford (2): Merge branch 'k.o/for-4.11-dma_ops' RDMA/bnxt_re: Switch from dma_device to dev.parent arch/alpha/include/asm/dma-mapping.h | 4 +- arch/alpha/kernel/pci-noop.c | 4 +- arch/alpha/kernel/pci_iommu.c | 4 +- arch/arc/include/asm/dma-mapping.h | 4 +- arch/arc/mm/dma.c | 2 +- arch/arm/common/dmabounce.c | 2 +- arch/arm/include/asm/device.h | 1 - arch/arm/include/asm/dma-mapping.h | 20 +-- arch/arm/mm/dma-mapping.c | 22 +-- arch/arm/xen/mm.c | 4 +- arch/arm64/include/asm/device.h | 1 - arch/arm64/include/asm/dma-mapping.h | 12 +- arch/arm64/mm/dma-mapping.c | 14 +- arch/avr32/include/asm/dma-mapping.h | 4 +- arch/avr32/mm/dma-coherent.c | 2 +- arch/blackfin/include/asm/dma-mapping.h | 4 +- arch/blackfin/kernel/dma-mapping.c | 2 +- arch/c6x/include/asm/dma-mapping.h | 4 +- arch/c6x/kernel/dma.c | 2 +- arch/cris/arch-v32/drivers/pci/dma.c | 2 +- arch/cris/include/asm/dma-mapping.h | 6 +- arch/frv/include/asm/dma-mapping.h | 4 +- arch/frv/mb93090-mb00/pci-dma-nommu.c | 2 +- arch/frv/mb93090-mb00/pci-dma.c | 2 +- arch/h8300/include/asm/dma-mapping.h | 4 +- arch/h8300/kernel/dma.c | 2 +- arch/hexagon/include/asm/dma-mapping.h | 7 +- arch/hexagon/kernel/dma.c | 4 +- arch/ia64/hp/common/hwsw_iommu.c | 4 +- arch/ia64/hp/common/sba_iommu.c | 4 +- arch/ia64/include/asm/dma-mapping.h | 7 +- arch/ia64/include/asm/machvec.h | 4 +- arch/ia64/kernel/dma-mapping.c | 4 +- arch/ia64/kernel/pci-dma.c | 10 +- arch/ia64/kernel/pci-swiotlb.c | 2 +- arch/m32r/Kconfig | 1 + arch/m32r/include/asm/device.h | 1 - arch/m32r/include/asm/dma-mapping.h | 4 +- arch/m68k/include/asm/dma-mapping.h | 4 +- arch/m68k/kernel/dma.c | 2 +- arch/metag/include/asm/dma-mapping.h | 4 +- arch/metag/kernel/dma.c | 2 +- arch/microblaze/include/asm/dma-mapping.h | 4 +- arch/microblaze/kernel/dma.c | 2 +- arch/mips/cavium-octeon/dma-octeon.c | 4 +- arch/mips/include/asm/device.h | 5 - arch/mips/include/asm/dma-mapping.h | 9 +- .../include/asm/mach-cavium-octeon/dma-coherence.h | 2 +- arch/mips/include/asm/netlogic/common.h | 2 +- arch/mips/loongson64/common/dma-swiotlb.c | 2 +- arch/mips/mm/dma-default.c | 4 +- arch/mips/netlogic/common/nlm-dma.c | 2 +- arch/mips/pci/pci-octeon.c | 2 +- arch/mn10300/include/asm/dma-mapping.h | 4 +- arch/mn10300/mm/dma-alloc.c | 2 +- arch/nios2/include/asm/dma-mapping.h | 4 +- arch/nios2/mm/dma-mapping.c | 2 +- arch/openrisc/include/asm/dma-mapping.h | 4 +- arch/openrisc/kernel/dma.c | 2 +- arch/parisc/include/asm/dma-mapping.h | 8 +- arch/parisc/kernel/drivers.c | 2 +- arch/parisc/kernel/pci-dma.c | 4 +- arch/powerpc/include/asm/device.h | 4 - arch/powerpc/include/asm/dma-mapping.h | 14 +- arch/powerpc/include/asm/pci.h | 4 +- arch/powerpc/include/asm/ps3.h | 2 +- arch/powerpc/include/asm/swiotlb.h | 2 +- arch/powerpc/kernel/dma-swiotlb.c | 2 +- arch/powerpc/kernel/dma.c | 8 +- arch/powerpc/kernel/pci-common.c | 6 +- arch/powerpc/platforms/cell/iommu.c | 6 +- arch/powerpc/platforms/pasemi/iommu.c | 2 +- arch/powerpc/platforms/pasemi/setup.c | 2 +- arch/powerpc/platforms/powernv/npu-dma.c | 2 +- arch/powerpc/platforms/ps3/system-bus.c | 8 +- arch/powerpc/platforms/pseries/ibmebus.c | 4 +- arch/powerpc/platforms/pseries/vio.c | 2 +- arch/s390/Kconfig | 1 + arch/s390/include/asm/device.h | 1 - arch/s390/include/asm/dma-mapping.h | 6 +- arch/s390/pci/pci.c | 2 +- arch/s390/pci/pci_dma.c | 2 +- arch/sh/include/asm/dma-mapping.h | 4 +- arch/sh/kernel/dma-nommu.c | 2 +- arch/sh/mm/consistent.c | 2 +- arch/sparc/include/asm/dma-mapping.h | 10 +- arch/sparc/kernel/iommu.c | 4 +- arch/sparc/kernel/ioport.c | 8 +- arch/sparc/kernel/pci_sun4v.c | 2 +- arch/tile/include/asm/device.h | 3 - arch/tile/include/asm/dma-mapping.h | 20 +-- arch/tile/kernel/pci-dma.c | 24 +-- arch/unicore32/include/asm/dma-mapping.h | 4 +- arch/unicore32/mm/dma-swiotlb.c | 2 +- arch/x86/include/asm/device.h | 5 +- arch/x86/include/asm/dma-mapping.h | 11 +- arch/x86/include/asm/iommu.h | 2 +- arch/x86/kernel/amd_gart_64.c | 2 +- arch/x86/kernel/pci-calgary_64.c | 6 +- arch/x86/kernel/pci-dma.c | 4 +- arch/x86/kernel/pci-nommu.c | 2 +- arch/x86/kernel/pci-swiotlb.c | 2 +- arch/x86/pci/common.c | 2 +- arch/x86/pci/sta2x11-fixup.c | 10 +- arch/x86/xen/pci-swiotlb-xen.c | 2 +- arch/xtensa/include/asm/device.h | 4 - arch/xtensa/include/asm/dma-mapping.h | 9 +- arch/xtensa/kernel/pci-dma.c | 2 +- drivers/infiniband/core/device.c | 9 + drivers/infiniband/core/sysfs.c | 2 +- drivers/infiniband/core/ucm.c | 2 +- drivers/infiniband/core/user_mad.c | 4 +- drivers/infiniband/core/uverbs_main.c | 2 +- drivers/infiniband/hw/bnxt_re/main.c | 2 +- drivers/infiniband/hw/cxgb3/iwch_provider.c | 2 +- drivers/infiniband/hw/cxgb4/provider.c | 2 +- drivers/infiniband/hw/hfi1/dma.c | 183 ----------- -------- drivers/infiniband/hw/hfi1/mad.c | 2 +- drivers/infiniband/hw/hfi1/verbs.c | 2 +- drivers/infiniband/hw/hns/hns_roce_main.c | 2 +- drivers/infiniband/hw/hns/hns_roce_qp.c | 2 +- drivers/infiniband/hw/i40iw/i40iw_verbs.c | 1 - drivers/infiniband/hw/mlx4/main.c | 2 +- drivers/infiniband/hw/mlx4/mlx4_ib.h | 2 +- drivers/infiniband/hw/mlx4/mr.c | 6 +- drivers/infiniband/hw/mlx5/main.c | 2 +- drivers/infiniband/hw/mlx5/mr.c | 8 +- drivers/infiniband/hw/mthca/mthca_provider.c | 2 +- drivers/infiniband/hw/nes/nes_verbs.c | 1 - drivers/infiniband/hw/ocrdma/ocrdma_main.c | 2 +- drivers/infiniband/hw/qedr/main.c | 2 +- drivers/infiniband/hw/qib/qib_dma.c | 169 ----------- ------- drivers/infiniband/hw/qib/qib_keys.c | 5 +- drivers/infiniband/hw/qib/qib_verbs.c | 2 +- drivers/infiniband/hw/usnic/usnic_ib_main.c | 2 +- drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c | 2 +- drivers/infiniband/sw/rdmavt/Kconfig | 1 + drivers/infiniband/sw/rdmavt/Makefile | 2 +- drivers/infiniband/sw/rdmavt/dma.c | 198 ----------- ---------- drivers/infiniband/sw/rdmavt/dma.h | 53 ------ drivers/infiniband/sw/rdmavt/mr.c | 8 +- drivers/infiniband/sw/rdmavt/vt.c | 4 +- drivers/infiniband/sw/rdmavt/vt.h | 1 - drivers/infiniband/sw/rxe/Kconfig | 1 + drivers/infiniband/sw/rxe/Makefile | 1 - drivers/infiniband/sw/rxe/rxe_dma.c | 183 ----------- -------- drivers/infiniband/sw/rxe/rxe_loc.h | 2 - drivers/infiniband/sw/rxe/rxe_verbs.c | 9 +- drivers/infiniband/ulp/ipoib/ipoib_ethtool.c | 2 +- drivers/infiniband/ulp/ipoib/ipoib_main.c | 2 +- drivers/infiniband/ulp/iser/iscsi_iser.c | 2 +- drivers/infiniband/ulp/srp/ib_srp.c | 4 +- drivers/infiniband/ulp/srpt/ib_srpt.c | 3 +- drivers/iommu/amd_iommu.c | 10 +- drivers/misc/mic/bus/mic_bus.c | 4 +- drivers/misc/mic/bus/scif_bus.c | 4 +- drivers/misc/mic/bus/scif_bus.h | 2 +- drivers/misc/mic/bus/vop_bus.c | 2 +- drivers/misc/mic/host/mic_boot.c | 4 +- drivers/nvme/host/rdma.c | 2 +- drivers/parisc/ccio-dma.c | 2 +- drivers/parisc/sba_iommu.c | 2 +- drivers/pci/host/vmd.c | 2 +- include/linux/device.h | 1 + include/linux/dma-mapping.h | 55 +++--- include/linux/mic_bus.h | 2 +- include/rdma/ib_verbs.h | 143 ++----------- -- include/xen/arm/hypervisor.h | 2 +- lib/Kconfig | 10 ++ lib/Makefile | 3 +- lib/dma-noop.c | 4 +- lib/dma-virt.c | 72 ++++++++ net/rds/ib.h | 8 +- net/rds/ib_mr.h | 1 - 174 files changed, 435 insertions(+), 1296 deletions(-) delete mode 100644 drivers/infiniband/hw/hfi1/dma.c delete mode 100644 drivers/infiniband/hw/qib/qib_dma.c delete mode 100644 drivers/infiniband/sw/rdmavt/dma.c delete mode 100644 drivers/infiniband/sw/rdmavt/dma.h delete mode 100644 drivers/infiniband/sw/rxe/rxe_dma.c create mode 100644 lib/dma-virt.c -- Doug Ledford <dledford@xxxxxxxxxx> GPG KeyID: B826A3330E572FDD Key fingerprint = AE6B 1BDA 122B 23B4 265B 1274 B826 A333 0E57 2FDD
Attachment:
signature.asc
Description: This is a digitally signed message part