a saner API for allocating DMA addressable pages

Helge Deller deller at gmx.de
Sat Aug 29 05:46:56 EDT 2020


Hi Christoph,

On 19.08.20 08:55, Christoph Hellwig wrote:
> this series replaced the DMA_ATTR_NON_CONSISTENT flag to dma_alloc_attrs
> with a separate new dma_alloc_pages API, which is available on all
> platforms.  In addition to cleaning up the convoluted code path, this
> ensures that other drivers that have asked for better support for
> non-coherent DMA to pages with incurring bounce buffering over can finally
> be properly supported.
> ....
> A git tree is available here:
>
>     git://git.infradead.org/users/hch/misc.git dma_alloc_pages

I've tested this tree on my parisc machine which uses the 53c700
and lasi_82596 drivers.
Everything worked as expected, so you may add:

Tested-by: Helge Deller <deller at gmx.de> # parisc

Thanks!
Helge

>
> Gitweb:
>
>     http://git.infradead.org/users/hch/misc.git/shortlog/refs/heads/dma_alloc_pages
>
>
> Diffstat:
>  Documentation/core-api/dma-api.rst                       |   92 ++----
>  Documentation/core-api/dma-attributes.rst                |    8
>  Documentation/userspace-api/media/v4l/buffer.rst         |   17 -
>  Documentation/userspace-api/media/v4l/vidioc-reqbufs.rst |    1
>  arch/alpha/kernel/pci_iommu.c                            |    2
>  arch/arm/include/asm/dma-direct.h                        |    4
>  arch/arm/mm/dma-mapping-nommu.c                          |    2
>  arch/arm/mm/dma-mapping.c                                |    4
>  arch/ia64/Kconfig                                        |    3
>  arch/ia64/hp/common/sba_iommu.c                          |    2
>  arch/ia64/kernel/dma-mapping.c                           |   14
>  arch/ia64/mm/init.c                                      |    3
>  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                                 |  102 +------
>  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                           |   48 +--
>  arch/mips/pci/pci-ar2315.c                               |    4
>  arch/mips/pci/pci-xtalk-bridge.c                         |    4
>  arch/mips/sgi-ip32/ip32-dma.c                            |    4
>  arch/parisc/Kconfig                                      |    1
>  arch/parisc/kernel/pci-dma.c                             |    6
>  arch/powerpc/include/asm/dma-direct.h                    |    4
>  arch/powerpc/kernel/dma-iommu.c                          |    2
>  arch/powerpc/platforms/ps3/system-bus.c                  |    4
>  arch/powerpc/platforms/pseries/vio.c                     |    2
>  arch/s390/pci/pci_dma.c                                  |    2
>  arch/x86/kernel/amd_gart_64.c                            |    8
>  drivers/gpu/drm/exynos/exynos_drm_gem.c                  |    2
>  drivers/gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c      |    3
>  drivers/iommu/dma-iommu.c                                |    2
>  drivers/iommu/intel/iommu.c                              |    6
>  drivers/media/common/videobuf2/videobuf2-core.c          |   36 --
>  drivers/media/common/videobuf2/videobuf2-dma-contig.c    |   19 -
>  drivers/media/common/videobuf2/videobuf2-dma-sg.c        |    3
>  drivers/media/common/videobuf2/videobuf2-v4l2.c          |   12
>  drivers/net/ethernet/amd/au1000_eth.c                    |   15 -
>  drivers/net/ethernet/i825xx/lasi_82596.c                 |   36 +-
>  drivers/net/ethernet/i825xx/lib82596.c                   |  148 +++++-----
>  drivers/net/ethernet/i825xx/sni_82596.c                  |   23 -
>  drivers/net/ethernet/seeq/sgiseeq.c                      |   24 -
>  drivers/nvme/host/pci.c                                  |   79 ++---
>  drivers/parisc/ccio-dma.c                                |    2
>  drivers/parisc/sba_iommu.c                               |    2
>  drivers/scsi/53c700.c                                    |  120 ++++----
>  drivers/scsi/53c700.h                                    |    9
>  drivers/scsi/sgiwd93.c                                   |   14
>  drivers/xen/swiotlb-xen.c                                |    2
>  include/linux/dma-direct.h                               |   55 ++-
>  include/linux/dma-mapping.h                              |   32 +-
>  include/linux/dma-noncoherent.h                          |   21 -
>  include/linux/dmapool.h                                  |   23 +
>  include/linux/gfp.h                                      |    6
>  include/media/videobuf2-core.h                           |    3
>  include/uapi/linux/videodev2.h                           |    2
>  kernel/dma/Kconfig                                       |    9
>  kernel/dma/Makefile                                      |    1
>  kernel/dma/coherent.c                                    |   17 +
>  kernel/dma/direct.c                                      |  112 +++++--
>  kernel/dma/mapping.c                                     |  104 ++-----
>  kernel/dma/ops_helpers.c                                 |   86 ++++++
>  kernel/dma/pool.c                                        |    2
>  kernel/dma/swiotlb.c                                     |    4
>  kernel/dma/virt.c                                        |    2
>  mm/dmapool.c                                             |  211 +++++++++------
>  sound/mips/hal2.c                                        |   58 +---
>  71 files changed, 872 insertions(+), 803 deletions(-)
>




More information about the linux-arm-kernel mailing list