lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20181221094812.GA2713@lst.de>
Date:   Fri, 21 Dec 2018 10:48:12 +0100
From:   Christoph Hellwig <hch@....de>
To:     Christoph Hellwig <hch@...radead.org>
Cc:     Linus Torvalds <torvalds@...ux-foundation.org>,
        iommu@...ts.linux-foundation.org,
        Konrad Rzeszutek Wilk <konrad.wilk@...cle.com>,
        Robin Murphy <robin.murphy@....com>,
        linux-kernel@...r.kernel.org
Subject: Re: [GIT PULL] dma-mapping updates for Linux 4.21

On Fri, Dec 21, 2018 at 10:45:49AM +0100, Christoph Hellwig wrote:
> The following changes since commit c9d76d0655c06b8c1f944e46c4fd9e9cf4b331c0:
> 
>   dma-mapping: fix return type of dma_set_max_seg_size() (2018-11-27 08:39:52 +0100)

And that actually is the first commit already in the tree, sorry.

Updated git-request-pull output attached:


The following changes since commit ef78e5ec9214376c5cb989f5da70b02d0c117b66:

  ia64: export node_distance function (2018-11-26 18:30:40 -0800)

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

Niklas Söderlund (1):
      dma-mapping: fix return type of dma_set_max_seg_size()

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                        | 350 +++++++++------------
 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, 1408 insertions(+), 2340 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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ