Commit 726e2d0c authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'dma-mapping-6.12-2024-09-19' of git://git.infradead.org/users/hch/dma-mapping

Pull dma-mapping updates from Christoph Hellwig:

 - support DMA zones for arm64 systems where memory starts at > 4GB
   (Baruch Siach, Catalin Marinas)

 - support direct calls into dma-iommu and thus obsolete dma_map_ops for
   many common configurations (Leon Romanovsky)

 - add DMA-API tracing (Sean Anderson)

 - remove the not very useful return value from various dma_set_* APIs
   (Christoph Hellwig)

 - misc cleanups and minor optimizations (Chen Y, Yosry Ahmed, Christoph
   Hellwig)

* tag 'dma-mapping-6.12-2024-09-19' of git://git.infradead.org/users/hch/dma-mapping:
  dma-mapping: reflow dma_supported
  dma-mapping: reliably inform about DMA support for IOMMU
  dma-mapping: add tracing for dma-mapping API calls
  dma-mapping: use IOMMU DMA calls for common alloc/free page calls
  dma-direct: optimize page freeing when it is not addressable
  dma-mapping: clearly mark DMA ops as an architecture feature
  vdpa_sim: don't select DMA_OPS
  arm64: mm: keep low RAM dma zone
  dma-mapping: don't return errors from dma_set_max_seg_size
  dma-mapping: don't return errors from dma_set_seg_boundary
  dma-mapping: don't return errors from dma_set_min_align_mask
  scsi: check that busses support the DMA API before setting dma parameters
  arm64: mm: fix DMA zone when dma-ranges is missing
  dma-mapping: direct calls for dma-iommu
  dma-mapping: call ->unmap_page and ->unmap_sg unconditionally
  arm64: support DMA zone above 4GB
  dma-mapping: replace zone_dma_bits by zone_dma_limit
  dma-mapping: use bit masking to check VM_DMA_COHERENT
parents de848da1 a5fb217f
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -11841,6 +11841,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux.git
F:	drivers/iommu/dma-iommu.c
F:	drivers/iommu/dma-iommu.h
F:	drivers/iommu/iova.c
F:	include/linux/iommu-dma.h
F:	include/linux/iova.h
IOMMU SUBSYSTEM
+9 −0
Original line number Diff line number Diff line
@@ -17,6 +17,15 @@ config CPU_MITIGATIONS
	def_bool y
endif

#
# Selected by architectures that need custom DMA operations for e.g. legacy
# IOMMUs not handled by dma-iommu.  Drivers must never select this symbol.
#
config ARCH_HAS_DMA_OPS
	depends on HAS_DMA
	select DMA_OPS_HELPERS
	bool

menu "General architecture-dependent options"

config ARCH_HAS_SUBPAGE_FAULTS
+1 −1
Original line number Diff line number Diff line
@@ -4,12 +4,12 @@ config ALPHA
	default y
	select ARCH_32BIT_USTAT_F_TINODE
	select ARCH_HAS_CURRENT_STACK_POINTER
	select ARCH_HAS_DMA_OPS if PCI
	select ARCH_MIGHT_HAVE_PC_PARPORT
	select ARCH_MIGHT_HAVE_PC_SERIO
	select ARCH_NO_PREEMPT
	select ARCH_NO_SG_CHAIN
	select ARCH_USE_CMPXCHG_LOCKREF
	select DMA_OPS if PCI
	select FORCE_PCI
	select PCI_DOMAINS if PCI
	select PCI_SYSCALL if PCI
+1 −1
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ config ARM
	select ARCH_HAS_CURRENT_STACK_POINTER
	select ARCH_HAS_DEBUG_VIRTUAL if MMU
	select ARCH_HAS_DMA_ALLOC if MMU
	select ARCH_HAS_DMA_OPS
	select ARCH_HAS_DMA_WRITE_COMBINE if !ARM_DMA_MEM_BUFFERABLE
	select ARCH_HAS_ELF_RANDOMIZE
	select ARCH_HAS_FORTIFY_SOURCE
@@ -54,7 +55,6 @@ config ARM
	select DCACHE_WORD_ACCESS if HAVE_EFFICIENT_UNALIGNED_ACCESS
	select DMA_DECLARE_COHERENT
	select DMA_GLOBAL_POOL if !MMU
	select DMA_OPS
	select DMA_NONCOHERENT_MMAP if MMU
	select EDAC_SUPPORT
	select EDAC_ATOMIC_SCRUB
+1 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ config ARM64
	select ARCH_HAS_CURRENT_STACK_POINTER
	select ARCH_HAS_DEBUG_VIRTUAL
	select ARCH_HAS_DEBUG_VM_PGTABLE
	select ARCH_HAS_DMA_OPS if XEN
	select ARCH_HAS_DMA_PREP_COHERENT
	select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI
	select ARCH_HAS_FAST_MULTIPLIER
Loading