linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@infradead.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Robin Murphy <robin.murphy@arm.com>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org
Subject: [GIT PULL] dma-mapping updates for Linux 4.21
Date: Fri, 21 Dec 2018 10:45:49 +0100	[thread overview]
Message-ID: <20181221094549.GA14522@infradead.org> (raw)

Hi Linus,

an early pull request as requested.  Besides the usual contextual
conflicts in Kconfig files that can be solved by taking both updates
and applying them manually there are some real conflicts this time:

  - the RISC-V tree has some updates to
    Documentation/features/io/sg-chain/arch-support.txt, which is
    removed in this tree.  It should be put to rest.
  - the sparc64 tree has various updates to replace the name field
    with the full_name one in the OF device, including in code
    that gets refctored in the dma-mapping tree.  I've applied an
    equivalent change to the refactored version, so take the
    dma-mapping tree version of arch/sparc/kernel/ioport.c.


The following changes since commit c9d76d0655c06b8c1f944e46c4fd9e9cf4b331c0:

  dma-mapping: fix return type of dma_set_max_seg_size() (2018-11-27 08:39:52 +0100)

are available in the Git repository at:

  git://git.infradead.org/users/hch/dma-mapping.git tags/dma-mapping-4.21

for you to fetch changes up to 8b1cce9f5832a8eda17d37a3c49fb7dd2d650f46:

  dma-mapping: fix inverted logic in dma_supported (2018-12-20 17:47:55 +0100)

----------------------------------------------------------------
DMA mapping updates for Linux 4.21

A huge update this time, but a lot of that is just consolidating or
removing code:

 - provide a common DMA_MAPPING_ERROR definition and avoid indirect
   calls for dma_map_* error checking
 - use direct calls for the DMA direct mapping case, avoiding huge
   retpoline overhead for high performance workloads
 - merge the swiotlb dma_map_ops into dma-direct
 - provide a generic remapping DMA consistent allocator for architectures
   that have devices that perform DMA that is not cache coherent. Based
   on the existing arm64 implementation and also used for csky now.
 - improve the dma-debug infrastructure, including dynamic allocation
   of entries (Robin Murphy)
 - default to providing chaining scatterlist everywhere, with opt-outs
   for the few architectures (alpha, parisc, most arm32 variants) that
   can't cope with it
 - misc sparc32 dma-related cleanups
 - remove the dma_mark_clean arch hook used by swiotlb on ia64 and
   replace it with the generic noncoherent infrastructure
 - fix the return type of dma_set_max_seg_size (Niklas Söderlund)
 - move the dummy dma ops for not DMA capable devices from arm64 to
   common code (Robin Murphy)
 - ensure dma_alloc_coherent returns zeroed memory to avoid kernel data
   leaks through userspace.  We already did this for most common
   architectures, but this ensures we do it everywhere.
   dma_zalloc_coherent has been deprecated and can hopefully be
   removed after -rc1 with a coccinelle script.

----------------------------------------------------------------
Christoph Hellwig (60):
      dma-direct: provide page based alloc/free helpers
      dma-direct: reject highmem pages from dma_alloc_from_contiguous
      dma-mapping: move the remap helpers to a separate file
      dma-mapping: move the arm64 noncoherent alloc/free support to common code
      dma-mapping: support highmem in the generic remap allocator
      dma-remap: support DMA_ATTR_NO_KERNEL_MAPPING
      csky: don't select DMA_NONCOHERENT_OPS
      csky: don't use GFP_DMA in atomic_pool_init
      csky: use the generic remapping dma alloc implementation
      dma-mapping: provide a generic DMA_MAPPING_ERROR
      dma-direct: remove the mapping_error dma_map_ops method
      arm: remove the mapping_error dma_map_ops method
      powerpc/iommu: remove the mapping_error dma_map_ops method
      mips/jazz: remove the mapping_error dma_map_ops method
      s390: remove the mapping_error dma_map_ops method
      sparc: remove the mapping_error dma_map_ops method
      parisc/ccio: remove the mapping_error dma_map_ops method
      parisc/sba_iommu: remove the mapping_error dma_map_ops method
      arm64: remove the dummy_dma_ops mapping_error method
      alpha: remove the mapping_error dma_map_ops method
      ia64/sba_iommu: improve internal map_page users
      ia64/sba_iommu: remove the mapping_error dma_map_ops method
      ia64/sn: remove the mapping_error dma_map_ops method
      x86/amd_gart: remove the mapping_error dma_map_ops method
      x86/calgary: remove the mapping_error dma_map_ops method
      iommu: remove the mapping_error dma_map_ops method
      iommu/intel: small map_page cleanup
      iommu/vt-d: remove the mapping_error dma_map_ops method
      iommu/dma-iommu: remove the mapping_error dma_map_ops method
      xen-swiotlb: remove the mapping_error dma_map_ops method
      dma-mapping: remove the mapping_error dma_map_ops method
      dma-mapping: return an error code from dma_mapping_error
      arch: switch the default on ARCH_HAS_SG_CHAIN
      sparc: remove not needed sbus_dma_ops methods
      sparc: factor the dma coherent mapping into helper
      sparc: remove the sparc32_dma_ops indirection
      sparc: remove not required includes from dma-mapping.h
      sparc: move the leon PCI memory space comment to <asm/leon.h>
      sparc: merge 32-bit and 64-bit version of pci.h
      sparc: use DT node full_name in sparc_dma_alloc_resource
      dma-mapping: remove a pointless memset in dma_atomic_pool_init
      dma-mapping: simplify the dma_sync_single_range_for_{cpu,device} implementation
      dma-mapping: merge dma_unmap_page_attrs and dma_unmap_single_attrs
      dma-mapping: move dma_get_required_mask to kernel/dma
      dma-mapping: move various slow path functions out of line
      dma-mapping: move dma_cache_sync out of line
      dma-mapping: always build the direct mapping code
      swiotlb: remove SWIOTLB_MAP_ERROR
      swiotlb: remove dma_mark_clean
      dma-direct: improve addressability error reporting
      dma-direct: use dma_direct_map_page to implement dma_direct_map_sg
      dma-direct: merge swiotlb_dma_ops into the dma_direct code
      vmd: use the proper dma_* APIs instead of direct methods calls
      dma-mapping: bypass indirect calls for dma-direct
      ia64: only select ARCH_HAS_DMA_COHERENT_TO_PFN if swiotlb is enabled
      arm64: default to the direct mapping in get_arch_dma_ops
      sparc/io-unit: fix ->map_sg return value
      sparc/iommu: fix ->map_sg return value
      dma-mapping: zero memory returned from dma_alloc_*
      dma-mapping: deprecate dma_zalloc_coherent

Marek Szyprowski (1):
      dma-mapping: fix lack of DMA address assignment in generic remap allocator

Nathan Chancellor (1):
      PCI: Remove unused attr variable in pci_dma_configure

Robin Murphy (9):
      dma-debug: Expose nr_total_entries in debugfs
      dma-debug: Use pr_fmt()
      dma-debug: Dynamically expand the dma_debug_entry pool
      dma-debug: Make leak-like behaviour apparent
      x86/dma/amd-gart: Stop resizing dma_debug_entry pool
      dma/debug: Remove dma_debug_resize_entries()
      dma-debug: Batch dma_debug_entry allocation
      dma-mapping: factor out dummy DMA ops
      ACPI / scan: Refactor _CCA enforcement

Thierry Reding (1):
      dma-mapping: fix inverted logic in dma_supported

 Documentation/DMA-API.txt                          |  29 +-
 .../features/io/sg-chain/arch-support.txt          |  33 --
 Documentation/x86/x86_64/boot-options.txt          |   5 +-
 arch/alpha/Kconfig                                 |   2 +-
 arch/alpha/include/asm/dma-mapping.h               |   2 +-
 arch/alpha/kernel/pci_iommu.c                      |  16 +-
 arch/arc/Kconfig                                   |   2 -
 arch/arc/mm/cache.c                                |   2 +-
 arch/arc/mm/dma.c                                  |   2 +-
 arch/arm/Kconfig                                   |   4 +-
 arch/arm/common/dmabounce.c                        |  12 +-
 arch/arm/include/asm/dma-iommu.h                   |   2 -
 arch/arm/include/asm/dma-mapping.h                 |   2 +-
 arch/arm/mm/dma-mapping-nommu.c                    |  14 +-
 arch/arm/mm/dma-mapping.c                          |  39 +--
 arch/arm64/Kconfig                                 |   3 +-
 arch/arm64/include/asm/dma-mapping.h               |   8 +-
 arch/arm64/mm/dma-mapping.c                        | 286 +----------------
 arch/c6x/Kconfig                                   |   1 -
 arch/c6x/mm/dma-coherent.c                         |   5 +-
 arch/csky/Kconfig                                  |   3 +-
 arch/csky/mm/dma-mapping.c                         | 142 +--------
 arch/h8300/Kconfig                                 |   1 -
 arch/hexagon/Kconfig                               |   1 -
 arch/ia64/Kconfig                                  |   4 +-
 arch/ia64/hp/common/hwsw_iommu.c                   |   2 +-
 arch/ia64/hp/common/sba_iommu.c                    |  87 ++----
 arch/ia64/kernel/dma-mapping.c                     |  21 +-
 arch/ia64/mm/init.c                                |  19 +-
 arch/ia64/sn/pci/pci_dma.c                         |   8 +-
 arch/m68k/Kconfig                                  |   1 -
 arch/m68k/kernel/dma.c                             |   2 +-
 arch/microblaze/Kconfig                            |   1 -
 arch/microblaze/mm/consistent.c                    |   2 +-
 arch/mips/Kconfig                                  |   1 -
 arch/mips/include/asm/dma-mapping.h                |   4 +-
 arch/mips/include/asm/jazzdma.h                    |   6 -
 arch/mips/jazz/jazzdma.c                           |  16 +-
 arch/nds32/Kconfig                                 |   1 -
 arch/nios2/Kconfig                                 |   1 -
 arch/openrisc/Kconfig                              |   1 -
 arch/openrisc/kernel/dma.c                         |   2 +-
 arch/parisc/Kconfig                                |   2 +-
 arch/parisc/kernel/pci-dma.c                       |   4 +-
 arch/parisc/kernel/setup.c                         |   4 -
 arch/powerpc/Kconfig                               |   1 -
 arch/powerpc/include/asm/dma-mapping.h             |   1 -
 arch/powerpc/include/asm/iommu.h                   |   4 -
 arch/powerpc/kernel/dma-iommu.c                    |   6 -
 arch/powerpc/kernel/dma-swiotlb.c                  |  17 +-
 arch/powerpc/kernel/iommu.c                        |  28 +-
 arch/powerpc/platforms/cell/iommu.c                |   1 -
 arch/powerpc/platforms/pseries/vio.c               |   3 +-
 arch/riscv/Kconfig                                 |   1 -
 arch/riscv/include/asm/dma-mapping.h               |  15 -
 arch/s390/Kconfig                                  |   2 -
 arch/s390/pci/pci_dma.c                            |  20 +-
 arch/sh/Kconfig                                    |   1 -
 arch/sparc/Kconfig                                 |   2 -
 arch/sparc/include/asm/dma-mapping.h               |   8 +-
 arch/sparc/include/asm/dma.h                       |  48 +--
 arch/sparc/include/asm/leon.h                      |   9 +
 arch/sparc/include/asm/pci.h                       |  53 +++-
 arch/sparc/include/asm/pci_32.h                    |  41 ---
 arch/sparc/include/asm/pci_64.h                    |  52 ---
 arch/sparc/kernel/iommu.c                          |  12 +-
 arch/sparc/kernel/iommu_common.h                   |   2 -
 arch/sparc/kernel/ioport.c                         | 243 +++------------
 arch/sparc/kernel/pci_sun4v.c                      |  14 +-
 arch/sparc/mm/io-unit.c                            |  80 +++--
 arch/sparc/mm/iommu.c                              | 160 ++++++----
 arch/unicore32/Kconfig                             |   1 -
 arch/x86/Kconfig                                   |   2 -
 arch/x86/kernel/amd_gart_64.c                      |  63 +---
 arch/x86/kernel/pci-calgary_64.c                   |  30 +-
 arch/x86/kernel/pci-dma.c                          |   2 +-
 arch/x86/kernel/pci-swiotlb.c                      |   4 +-
 arch/x86/mm/mem_encrypt.c                          |   7 -
 arch/x86/pci/sta2x11-fixup.c                       |   1 -
 arch/xtensa/Kconfig                                |   3 +-
 arch/xtensa/kernel/pci-dma.c                       |   2 +-
 drivers/acpi/scan.c                                |   5 +
 drivers/base/platform.c                            |  34 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c                |   2 +-
 drivers/iommu/amd_iommu.c                          |  31 +-
 drivers/iommu/dma-iommu.c                          |  23 +-
 drivers/iommu/intel-iommu.c                        |  26 +-
 drivers/misc/mic/host/mic_boot.c                   |   2 +-
 drivers/parisc/ccio-dma.c                          |  10 +-
 drivers/parisc/sba_iommu.c                         |  10 +-
 drivers/pci/controller/vmd.c                       |  48 +--
 drivers/pci/pci-driver.c                           |   4 +-
 drivers/xen/swiotlb-xen.c                          |  36 +--
 include/asm-generic/dma-mapping.h                  |   2 +-
 include/linux/dma-debug.h                          |  34 --
 include/linux/dma-direct.h                         |  19 +-
 include/linux/dma-iommu.h                          |   1 -
 include/linux/dma-mapping.h                        | 347 +++++++++------------
 include/linux/dma-noncoherent.h                    |   7 +-
 include/linux/scatterlist.h                        |   6 +-
 include/linux/swiotlb.h                            |  77 ++---
 kernel/dma/Kconfig                                 |  14 +-
 kernel/dma/Makefile                                |   5 +-
 kernel/dma/debug.c                                 | 259 ++++++---------
 kernel/dma/direct.c                                | 222 +++++++------
 kernel/dma/dummy.c                                 |  39 +++
 kernel/dma/mapping.c                               | 223 +++++++++----
 kernel/dma/remap.c                                 | 256 +++++++++++++++
 kernel/dma/swiotlb.c                               | 253 +--------------
 kernel/dma/virt.c                                  |   2 +-
 lib/Kconfig                                        |   2 +-
 lib/scatterlist.c                                  |   2 +-
 112 files changed, 1407 insertions(+), 2338 deletions(-)
 delete mode 100644 Documentation/features/io/sg-chain/arch-support.txt
 delete mode 100644 arch/riscv/include/asm/dma-mapping.h
 delete mode 100644 arch/sparc/include/asm/pci_32.h
 delete mode 100644 arch/sparc/include/asm/pci_64.h
 create mode 100644 kernel/dma/dummy.c
 create mode 100644 kernel/dma/remap.c

             reply	other threads:[~2018-12-21  9:46 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-21  9:45 Christoph Hellwig [this message]
2018-12-21  9:48 ` [GIT PULL] dma-mapping updates for Linux 4.21 Christoph Hellwig
2018-12-29  1:30 ` pr-tracker-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181221094549.GA14522@infradead.org \
    --to=hch@infradead.org \
    --cc=iommu@lists.linux-foundation.org \
    --cc=konrad.wilk@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=m.szyprowski@samsung.com \
    --cc=robin.murphy@arm.com \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).