Hi Linus, please pull the dma-mapping update for 5.10. It contains a (clean) merge of a later 5.9-rc commit, as I had to pull in a media subsystem revert that is required for later commits.
There are a few trivial contextual conflicts due to the dma-mapping.h split, for those simple keep both sides, that is the new headers added by other trees as well as the ones added here, or the entire file deletions in case of the arm tree. The following changes since commit 171d4ff79f965c1f164705ef0aaea102a6ad238b: Merge tag 'mmc-v5.9-rc4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc (2020-09-24 09:09:47 -0700) are available in the Git repository at: git://git.infradead.org/users/hch/dma-mapping.git tags/dma-mapping-5.10 for you to fetch changes up to 2a410d09417b5344ab1f3cf001ac73a1daf8dcce: ARM/ixp4xx: add a missing include of dma-map-ops.h (2020-10-13 13:28:22 +0200) ---------------------------------------------------------------- dma-mapping updates for 5.10 - rework the non-coherent DMA allocator - move private definitions out of <linux/dma-mapping.h> - lower CMA_ALIGNMENT (Paul Cercueil) - remove the omap1 dma address translation in favor of the common code - make dma-direct aware of multiple dma offset ranges (Jim Quinlan) - support per-node DMA CMA areas (Barry Song) - increase the default seg boundary limit (Nicolin Chen) - misc fixes (Robin Murphy, Thomas Tai, Xu Wang) - various cleanups ---------------------------------------------------------------- Barry Song (3): dma-contiguous: provide the ability to reserve per-numa CMA arm64: mm: reserve per-numa CMA to localize coherent dma buffers mm: cma: use CMA_MAX_NAME to define the length of cma name array Christoph Hellwig (54): dma-mapping: remove the dma_dummy_ops export dma-debug: remove most exports MIPS: make dma_sync_*_for_cpu a little less overzealous MIPS/jazzdma: remove the unused vdma_remap function MIPS/jazzdma: decouple from dma-direct dma-mapping: fix DMA_OPS dependencies dma-mapping: add (back) arch_dma_mark_clean for ia64 dma-direct: remove dma_direct_{alloc,free}_pages dma-direct: lift gfp_t manipulation out of__dma_direct_alloc_pages dma-direct: use phys_to_dma_direct in dma_direct_alloc dma-direct: remove __dma_to_phys dma-direct: rename and cleanup __phys_to_dma dma-mapping: move dma_common_{mmap,get_sgtable} out of mapping.c dma-mapping: move the dma_declare_coherent_memory documentation ARM/dma-mapping: remove a __arch_page_to_dma #error ARM/dma-mapping: remove dma_to_virt ARM/dma-mapping: move various helpers from dma-mapping.h to dma-direct.h ARM/keystone: move the DMA offset handling under ifdef CONFIG_ARM_LPAE usb: don't inherity DMA properties for USB devices dma-mapping: remove DMA_MASK_NONE dma-mapping: move valid_dma_direction to dma-direction.h dma-mapping: better document dma_addr_t and DMA_MAPPING_ERROR ARM/omap1: switch to use dma_direct_set_offset for lbus DMA offsets Merge branch 'master' of https://git.kernel.org/.../torvalds/linux into dma-mapping-for-next mm: turn alloc_pages into an inline function drm/exynos: stop setting DMA_ATTR_NON_CONSISTENT drm/nouveau/gk20a: stop setting DMA_ATTR_NON_CONSISTENT net/au1000-eth: stop using DMA_ATTR_NON_CONSISTENT lib82596: move DMA allocation into the callers of i82596_probe 53c700: improve non-coherent DMA handling dma-mapping: add a new dma_alloc_noncoherent API sgiwd93: convert to dma_alloc_noncoherent hal2: convert to dma_alloc_noncoherent lib82596: convert to dma_alloc_noncoherent sgiseeq: convert to dma_alloc_noncoherent 53c700: convert to dma_alloc_noncoherent dma-mapping: remove dma_cache_sync dma-mapping: add a new dma_alloc_pages API dma-mapping: add new {alloc,free}_noncoherent dma_map_ops methods dma-iommu: implement ->alloc_noncoherent firewire-ohci: use dma_alloc_pages dma-mapping: split <linux/dma-mapping.h> dma-contiguous: remove dma_declare_contiguous dma-contiguous: remove dev_set_cma_area dma-contiguous: remove dma_contiguous_set_default dma-mapping: merge <linux/dma-contiguous.h> into <linux/dma-map-ops.h> dma-mapping: remove <asm/dma-contiguous.h> dma-mapping: move dma-debug.h to kernel/dma/ dma-mapping: move large parts of <linux/dma-direct.h> to kernel/dma dma-mapping: merge <linux/dma-noncoherent.h> into <linux/dma-map-ops.h> dma-direct check for highmem pages in dma_direct_alloc_pages dma-direct: factor out a dma_direct_alloc_from_pool helper dma-direct: simplify the DMA_ATTR_NO_KERNEL_MAPPING handling ARM/ixp4xx: add a missing include of dma-map-ops.h Jim Quinlan (1): dma-mapping: introduce DMA range map, supplanting dma_pfn_offset Nicolin Chen (2): dma-mapping: introduce dma_get_seg_boundary_nr_pages() dma-mapping: set default segment_boundary_mask to ULONG_MAX Paul Cercueil (1): cma: decrease CMA_ALIGNMENT lower limit to 2 Robin Murphy (1): iommu/io-pgtable-arm: Clean up faulty sanity check Thomas Tai (1): dma-direct: Fix potential NULL pointer dereference Xu Wang (1): dma-debug: convert comma to semicolon Documentation/admin-guide/kernel-parameters.txt | 13 +- Documentation/core-api/dma-api.rst | 99 +++---- Documentation/core-api/dma-attributes.rst | 8 - MAINTAINERS | 2 +- arch/alpha/kernel/pci_iommu.c | 11 +- arch/arc/mm/dma.c | 2 +- arch/arm/common/dmabounce.c | 3 +- arch/arm/include/asm/dma-contiguous.h | 15 - arch/arm/include/asm/dma-direct.h | 35 ++- arch/arm/include/asm/dma-iommu.h | 1 - arch/arm/include/asm/dma-mapping.h | 71 ----- arch/arm/mach-davinci/devices-da8xx.c | 18 +- arch/arm/mach-highbank/highbank.c | 2 +- arch/arm/mach-imx/mach-imx27_visstrim_m10.c | 2 +- arch/arm/mach-imx/mach-mx31moboard.c | 2 +- arch/arm/mach-ixp4xx/common.c | 1 + arch/arm/mach-keystone/keystone.c | 21 +- arch/arm/mach-mvebu/coherency.c | 2 +- arch/arm/mach-omap1/include/mach/memory.h | 31 -- arch/arm/mach-omap1/usb.c | 22 ++ arch/arm/mach-shmobile/setup-rcar-gen2.c | 2 +- arch/arm/mm/dma-mapping-nommu.c | 3 + arch/arm/mm/dma-mapping.c | 9 +- arch/arm/mm/init.c | 2 +- arch/arm/xen/mm.c | 2 +- arch/arm64/mm/dma-mapping.c | 2 +- arch/arm64/mm/init.c | 5 +- arch/c6x/mm/dma-coherent.c | 2 +- arch/csky/kernel/setup.c | 2 +- arch/csky/mm/dma-mapping.c | 4 +- arch/hexagon/kernel/dma.c | 2 +- arch/ia64/Kconfig | 3 +- arch/ia64/hp/common/sba_iommu.c | 7 +- arch/ia64/kernel/dma-mapping.c | 14 +- arch/ia64/mm/init.c | 5 +- arch/m68k/kernel/dma.c | 2 +- arch/microblaze/kernel/dma.c | 3 +- arch/microblaze/mm/consistent.c | 2 +- arch/microblaze/mm/init.c | 2 +- arch/mips/Kconfig | 1 - arch/mips/bmips/dma.c | 4 +- arch/mips/cavium-octeon/dma-octeon.c | 4 +- arch/mips/include/asm/dma-direct.h | 4 +- arch/mips/include/asm/jazzdma.h | 2 - arch/mips/jazz/jazzdma.c | 105 ++----- arch/mips/kernel/setup.c | 2 +- arch/mips/loongson2ef/fuloong-2e/dma.c | 4 +- arch/mips/loongson2ef/lemote-2f/dma.c | 4 +- arch/mips/loongson64/dma.c | 4 +- arch/mips/mm/dma-noncoherent.c | 51 ++-- arch/mips/pci/pci-ar2315.c | 4 +- arch/mips/pci/pci-xtalk-bridge.c | 4 +- arch/mips/sgi-ip32/ip32-dma.c | 4 +- arch/nds32/kernel/dma.c | 2 +- arch/openrisc/kernel/dma.c | 2 +- arch/parisc/Kconfig | 1 - arch/parisc/kernel/drivers.c | 1 + arch/parisc/kernel/pci-dma.c | 8 +- arch/powerpc/include/asm/dma-direct.h | 4 +- arch/powerpc/include/asm/iommu.h | 2 +- arch/powerpc/include/asm/pci.h | 2 +- arch/powerpc/kernel/dma-iommu.c | 2 + arch/powerpc/kernel/iommu.c | 11 +- arch/powerpc/mm/dma-noncoherent.c | 2 +- arch/powerpc/platforms/ps3/system-bus.c | 6 +- arch/powerpc/platforms/pseries/ibmebus.c | 2 +- arch/powerpc/platforms/pseries/vio.c | 4 +- arch/s390/kernel/setup.c | 2 +- arch/s390/pci/pci_dma.c | 10 +- arch/sh/boards/mach-ap325rxa/setup.c | 1 + arch/sh/boards/mach-ecovec24/setup.c | 1 + arch/sh/boards/mach-kfr2r09/setup.c | 2 +- arch/sh/boards/mach-migor/setup.c | 2 +- arch/sh/boards/mach-se/7724/setup.c | 1 + arch/sh/drivers/pci/fixups-dreamcast.c | 2 +- arch/sh/drivers/pci/pci.c | 1 - arch/sh/drivers/pci/pcie-sh7786.c | 9 +- arch/sh/kernel/dma-coherent.c | 2 +- arch/sparc/kernel/iommu-common.c | 10 +- arch/sparc/kernel/iommu.c | 5 +- arch/sparc/kernel/ioport.c | 2 +- arch/sparc/kernel/pci_sun4v.c | 4 +- arch/sparc/mm/io-unit.c | 2 +- arch/sparc/mm/iommu.c | 2 +- arch/x86/include/asm/dma-mapping.h | 2 - arch/x86/kernel/amd_gart_64.c | 12 +- arch/x86/kernel/pci-dma.c | 2 +- arch/x86/kernel/setup.c | 2 + arch/x86/pci/sta2x11-fixup.c | 6 +- arch/x86/xen/pci-swiotlb-xen.c | 2 +- arch/xtensa/kernel/pci-dma.c | 3 +- arch/xtensa/mm/init.c | 2 +- drivers/acpi/arm64/iort.c | 6 +- drivers/acpi/scan.c | 2 +- drivers/base/core.c | 2 + drivers/base/dd.c | 2 +- drivers/dma-buf/heaps/cma_heap.c | 2 +- drivers/firewire/ohci.c | 26 +- drivers/gpu/drm/exynos/exynos_drm_dma.c | 2 +- drivers/gpu/drm/exynos/exynos_drm_gem.c | 2 - drivers/gpu/drm/msm/msm_gem.c | 1 + .../gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c | 3 +- drivers/gpu/drm/sun4i/sun4i_backend.c | 8 +- drivers/iommu/amd/iommu.c | 3 +- drivers/iommu/dma-iommu.c | 46 ++- drivers/iommu/intel/iommu.c | 10 +- drivers/iommu/io-pgtable-arm.c | 5 - drivers/media/platform/exynos4-is/fimc-is.c | 1 - drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c | 9 +- drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c | 11 +- drivers/misc/mic/Kconfig | 1 + drivers/misc/mic/bus/mic_bus.c | 1 + drivers/misc/mic/bus/scif_bus.c | 2 +- drivers/misc/mic/bus/scif_bus.h | 2 +- drivers/misc/mic/bus/vop_bus.c | 2 +- drivers/misc/mic/host/mic_boot.c | 1 + drivers/net/ethernet/amd/au1000_eth.c | 15 +- drivers/net/ethernet/i825xx/lasi_82596.c | 37 +-- drivers/net/ethernet/i825xx/lib82596.c | 148 +++++----- drivers/net/ethernet/i825xx/sni_82596.c | 23 +- drivers/net/ethernet/seeq/sgiseeq.c | 28 +- drivers/of/address.c | 73 ++--- drivers/of/device.c | 45 +-- drivers/of/of_private.h | 11 +- drivers/of/unittest.c | 34 ++- drivers/parisc/ccio-dma.c | 6 +- drivers/parisc/sba_iommu.c | 6 +- drivers/pci/pci-driver.c | 1 + drivers/pci/xen-pcifront.c | 1 + drivers/pcmcia/ds.c | 2 +- drivers/remoteproc/remoteproc_core.c | 25 +- drivers/remoteproc/remoteproc_virtio.c | 2 +- drivers/scsi/53c700.c | 121 ++++---- drivers/scsi/53c700.h | 17 +- drivers/scsi/sgiwd93.c | 14 +- drivers/staging/media/sunxi/cedrus/cedrus_hw.c | 10 +- drivers/usb/core/message.c | 6 - drivers/usb/core/usb.c | 12 - drivers/vdpa/vdpa_sim/vdpa_sim.c | 2 +- drivers/xen/swiotlb-xen.c | 4 +- include/asm-generic/Kbuild | 1 - include/asm-generic/dma-contiguous.h | 10 - include/linux/cma.h | 2 + include/linux/device.h | 4 +- include/linux/dma-contiguous.h | 176 ----------- include/linux/dma-direct.h | 198 +++++-------- include/linux/dma-direction.h | 8 +- include/linux/dma-map-ops.h | 326 +++++++++++++++++++++ include/linux/dma-mapping.h | 240 ++++----------- include/linux/dma-noncoherent.h | 114 ------- include/linux/gfp.h | 6 +- kernel/dma/Kconfig | 25 +- kernel/dma/Makefile | 1 + kernel/dma/coherent.c | 25 +- kernel/dma/contiguous.c | 142 ++++++++- kernel/dma/debug.c | 19 +- include/linux/dma-debug.h => kernel/dma/debug.h | 44 +-- kernel/dma/direct.c | 268 ++++++++++------- kernel/dma/direct.h | 119 ++++++++ kernel/dma/dummy.c | 3 +- kernel/dma/mapping.c | 159 ++++++---- kernel/dma/ops_helpers.c | 85 ++++++ kernel/dma/pool.c | 5 +- kernel/dma/swiotlb.c | 6 +- kernel/dma/virt.c | 4 +- mm/Kconfig | 3 +- mm/cma.h | 2 - mm/hugetlb.c | 4 +- mm/memory.c | 1 - sound/mips/hal2.c | 58 ++-- 170 files changed, 1921 insertions(+), 1699 deletions(-) delete mode 100644 arch/arm/include/asm/dma-contiguous.h delete mode 100644 include/asm-generic/dma-contiguous.h delete mode 100644 include/linux/dma-contiguous.h create mode 100644 include/linux/dma-map-ops.h delete mode 100644 include/linux/dma-noncoherent.h rename include/linux/dma-debug.h => kernel/dma/debug.h (81%) create mode 100644 kernel/dma/direct.h create mode 100644 kernel/dma/ops_helpers.c _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu