* [GIT PULL] dma-mapping updates for Linux 4.16
@ 2018-01-31 7:43 Christoph Hellwig
0 siblings, 0 replies; only message in thread
From: Christoph Hellwig @ 2018-01-31 7:43 UTC (permalink / raw)
To: Linus Torvalds
Cc: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA, Konrad Rzeszutek Wilk
Hi Linus,
below is the update for the dma-mapping subsystem for Linux 4.16.
Except for a runtime warning fix from Christian this is all about
consolidating the direct mapping and swiotlb dma maps based on the
x86 code, which will hopefully be switched to this generic code
as well in the next merge window.
Note that there is a small conflict in lib/Kconfig with the block
updates you have already pulled: the block tree adds a new symbol
right next to the symbol that gets renamed in this tree. The
fix is obvious.
The following changes since commit b2cd1df66037e7c4697c7e40496bf7e4a5e16a2d:
Linux 4.15-rc7 (2018-01-07 14:22:41 -0800)
are available in the git repository at:
git://git.infradead.org/users/hch/dma-mapping.git tags/dma-mapping-4.16
for you to fetch changes up to 04f56534786c885f578c24461bcd782fe9a787cf:
MAINTAINERS: add the iommu list for swiotlb and xen-swiotlb (2018-01-25 16:14:15 +0100)
----------------------------------------------------------------
dma mapping changes for Linux 4.16:
This pull requests contains a consolidation of the generic no-IOMMU code,
a well as the glue code for swiotlb. All the code is based on the x86
implementation with hooks to allow all architectures that aren't cache
coherent to use it. The x86 conversion itself has been deferred because
the x86 maintainers were a little busy in the last months.
----------------------------------------------------------------
Christian König (1):
swiotlb: suppress warning when __GFP_NOWARN is set
Christoph Hellwig (56):
alpha: mark jensen as broken
hexagon: remove unused flush_write_buffers definition
m32r: remove unused flush_write_buffers definition
powerpc: remove unused flush_write_buffers definition
arc: remove CONFIG_ARC_PLAT_NEEDS_PHYS_TO_DMA
m32r: remove the unused dma_capable helper
riscv: remove the unused dma_capable helper
s390: remove the unused dma_capable helper
dma-mapping: take dma_pfn_offset into account in dma_max_pfn
arm64: don't override dma_max_pfn
mips: fix an off-by-one in dma_capable
dma-mapping: move swiotlb arch helpers to a new header
dma-mapping: move dma_mark_clean to dma-direct.h
hexagon: use the generic dma_capable helper
powerpc: rename dma_direct_ to dma_nommu_
microblaze: rename dma_direct to dma_nommu
microblaze: remove dma_nommu_dma_supported
microblaze: remove the dead !NOT_COHERENT_CACHE dma code
s390: move s390_pci_dma_ops to asm/pci_dma.h
dma-mapping: warn when there is no coherent_dma_mask
dma-mapping: clear harmful GFP_* flags in common code
dma-mapping: add an arch_dma_supported hook
dma-mapping: provide a generic asm/dma-mapping.h
dma-direct: rename dma_noop to dma_direct
dma-direct: use phys_to_dma
dma-direct: add dma address sanity checks
dma-direct: add support for CMA allocation
dma-direct: use node local allocations for coherent memory
dma-direct: add support for allocation from ZONE_DMA and ZONE_DMA32
dma-direct: retry allocations using GFP_DMA for small masks
dma-direct: make dma_direct_{alloc,free} available to other implementations
dma-direct: reject too small dma masks
cris: use dma-direct
h8300: use dma-direct
arm64: rename swiotlb_dma_ops
ia64: rename swiotlb_dma_ops
powerpc: rename swiotlb_dma_ops
x86: rename swiotlb_dma_ops
swiotlb: rename swiotlb_free to swiotlb_exit
swiotlb: add common swiotlb_map_ops
swiotlb: wire up ->dma_supported in swiotlb_dma_ops
swiotlb: refactor coherent buffer freeing
swiotlb: refactor coherent buffer allocation
swiotlb: remove various exports
ia64: replace ZONE_DMA with ZONE_DMA32
ia64: use generic swiotlb_ops
ia64: clean up swiotlb support
ia64: remove an ifdef around the content of pci-dma.c
unicore32: use generic swiotlb_ops
tile: replace ZONE_DMA with ZONE_DMA32
tile: use generic swiotlb_ops
mips/netlogic: remove swiotlb support
mips: use swiotlb_{alloc,free}
arm64: replace ZONE_DMA with ZONE_DMA32
arm64: use swiotlb_alloc and swiotlb_free
MAINTAINERS: add the iommu list for swiotlb and xen-swiotlb
MAINTAINERS | 7 +-
arch/Kconfig | 4 +
arch/alpha/Kconfig | 1 +
arch/arc/Kconfig | 3 -
arch/arc/include/asm/dma-mapping.h | 7 -
arch/arc/mm/dma.c | 14 +-
arch/arm/Kconfig | 3 +-
arch/arm/include/asm/dma-direct.h | 36 ++++
arch/arm/include/asm/dma-mapping.h | 35 +---
arch/arm/mm/dma-mapping-nommu.c | 13 +-
arch/arm64/Kconfig | 3 +-
arch/arm64/include/asm/dma-mapping.h | 35 ----
arch/arm64/mm/dma-mapping.c | 54 +-----
arch/arm64/mm/init.c | 16 +-
arch/cris/Kconfig | 4 +
arch/cris/arch-v32/drivers/pci/Makefile | 2 +-
arch/cris/arch-v32/drivers/pci/dma.c | 80 --------
arch/cris/include/asm/Kbuild | 1 +
arch/cris/include/asm/dma-mapping.h | 20 --
arch/h8300/Kconfig | 1 +
arch/h8300/include/asm/Kbuild | 1 +
arch/h8300/include/asm/dma-mapping.h | 12 --
arch/h8300/kernel/Makefile | 2 +-
arch/h8300/kernel/dma.c | 69 -------
arch/hexagon/include/asm/dma-mapping.h | 7 -
arch/hexagon/include/asm/io.h | 2 -
arch/hexagon/kernel/dma.c | 1 +
arch/ia64/Kconfig | 8 +-
arch/ia64/hp/common/hwsw_iommu.c | 2 +-
arch/ia64/include/asm/dma-mapping.h | 19 --
arch/ia64/include/asm/dma.h | 2 -
arch/ia64/include/asm/swiotlb.h | 18 --
arch/ia64/kernel/dma-mapping.c | 9 +
arch/ia64/kernel/pci-dma.c | 19 +-
arch/ia64/kernel/pci-swiotlb.c | 68 -------
arch/ia64/mm/contig.c | 4 +-
arch/ia64/mm/discontig.c | 8 +-
arch/m32r/Kconfig | 2 +-
arch/m32r/include/asm/Kbuild | 1 +
arch/m32r/include/asm/dma-mapping.h | 24 ---
arch/m32r/include/asm/io.h | 2 -
arch/m68k/kernel/dma.c | 2 -
arch/microblaze/include/asm/dma-mapping.h | 4 +-
arch/microblaze/kernel/dma.c | 78 +++-----
arch/mips/Kconfig | 2 +
arch/mips/cavium-octeon/Kconfig | 1 +
arch/mips/cavium-octeon/dma-octeon.c | 29 +--
arch/mips/include/asm/dma-direct.h | 1 +
arch/mips/include/asm/dma-mapping.h | 10 -
.../include/asm/mach-cavium-octeon/dma-coherence.h | 8 +
arch/mips/include/asm/mach-generic/dma-coherence.h | 12 --
.../include/asm/mach-loongson64/dma-coherence.h | 8 +
arch/mips/include/asm/netlogic/common.h | 3 -
arch/mips/loongson64/Kconfig | 1 +
arch/mips/loongson64/common/dma-swiotlb.c | 24 +--
arch/mips/mm/dma-default.c | 3 -
arch/mips/netlogic/Kconfig | 5 -
arch/mips/netlogic/common/Makefile | 1 -
arch/mips/netlogic/common/nlm-dma.c | 97 ----------
arch/mn10300/mm/dma-alloc.c | 3 -
arch/nios2/mm/dma-mapping.c | 3 -
arch/parisc/kernel/pci-dma.c | 7 -
arch/powerpc/Kconfig | 1 +
arch/powerpc/include/asm/dma-direct.h | 29 +++
arch/powerpc/include/asm/dma-mapping.h | 36 +---
arch/powerpc/include/asm/swiotlb.h | 4 +-
arch/powerpc/kernel/dma-iommu.c | 2 +-
arch/powerpc/kernel/dma-swiotlb.c | 12 +-
arch/powerpc/kernel/dma.c | 73 ++++----
arch/powerpc/kernel/pci-common.c | 2 +-
arch/powerpc/kernel/setup-common.c | 2 +-
arch/powerpc/platforms/cell/iommu.c | 28 +--
arch/powerpc/platforms/pasemi/iommu.c | 2 +-
arch/powerpc/platforms/pasemi/setup.c | 2 +-
arch/powerpc/platforms/powernv/pci-ioda.c | 4 +-
arch/powerpc/platforms/pseries/iommu.c | 2 +-
arch/powerpc/platforms/pseries/vio.c | 2 +-
arch/powerpc/sysdev/dart_iommu.c | 4 +-
arch/powerpc/sysdev/fsl_pci.c | 4 +-
arch/riscv/Kconfig | 2 +-
arch/riscv/include/asm/Kbuild | 1 +
arch/riscv/include/asm/dma-mapping.h | 38 ----
arch/s390/Kconfig | 2 +-
arch/s390/include/asm/Kbuild | 1 +
arch/s390/include/asm/dma-mapping.h | 26 ---
arch/s390/include/asm/pci_dma.h | 3 +
arch/tile/Kconfig | 3 +-
arch/tile/include/asm/dma-mapping.h | 20 --
arch/tile/kernel/pci-dma.c | 38 +---
arch/tile/kernel/setup.c | 8 +-
arch/unicore32/include/asm/dma-mapping.h | 29 +--
arch/unicore32/mm/Kconfig | 1 +
arch/unicore32/mm/Makefile | 2 -
arch/unicore32/mm/dma-swiotlb.c | 48 -----
arch/x86/Kconfig | 1 +
arch/x86/include/asm/dma-direct.h | 30 +++
arch/x86/include/asm/dma-mapping.h | 29 +--
arch/x86/include/asm/swiotlb.h | 2 -
arch/x86/kernel/amd_gart_64.c | 1 +
arch/x86/kernel/pci-dma.c | 23 ++-
arch/x86/kernel/pci-nommu.c | 2 +-
arch/x86/kernel/pci-swiotlb.c | 8 +-
arch/x86/mm/mem_encrypt.c | 2 +-
arch/x86/pci/sta2x11-fixup.c | 1 +
arch/xtensa/include/asm/dma-mapping.h | 10 -
drivers/crypto/marvell/cesa.c | 1 +
drivers/iommu/intel-iommu.c | 2 +-
drivers/misc/cxl/vphb.c | 2 +-
drivers/mtd/nand/qcom_nandc.c | 1 +
drivers/xen/swiotlb-xen.c | 2 +-
include/asm-generic/dma-mapping.h | 10 +
include/linux/dma-direct.h | 47 +++++
include/linux/dma-mapping.h | 23 ++-
include/linux/swiotlb.h | 12 +-
lib/Kconfig | 2 +-
lib/Makefile | 2 +-
lib/dma-direct.c | 156 ++++++++++++++++
lib/dma-noop.c | 68 -------
lib/swiotlb.c | 205 +++++++++++++--------
119 files changed, 728 insertions(+), 1266 deletions(-)
create mode 100644 arch/arm/include/asm/dma-direct.h
delete mode 100644 arch/cris/arch-v32/drivers/pci/dma.c
delete mode 100644 arch/cris/include/asm/dma-mapping.h
delete mode 100644 arch/h8300/include/asm/dma-mapping.h
delete mode 100644 arch/h8300/kernel/dma.c
delete mode 100644 arch/ia64/include/asm/swiotlb.h
delete mode 100644 arch/ia64/kernel/pci-swiotlb.c
delete mode 100644 arch/m32r/include/asm/dma-mapping.h
create mode 100644 arch/mips/include/asm/dma-direct.h
delete mode 100644 arch/mips/netlogic/common/nlm-dma.c
create mode 100644 arch/powerpc/include/asm/dma-direct.h
delete mode 100644 arch/riscv/include/asm/dma-mapping.h
delete mode 100644 arch/s390/include/asm/dma-mapping.h
delete mode 100644 arch/unicore32/mm/dma-swiotlb.c
create mode 100644 arch/x86/include/asm/dma-direct.h
create mode 100644 include/asm-generic/dma-mapping.h
create mode 100644 include/linux/dma-direct.h
create mode 100644 lib/dma-direct.c
delete mode 100644 lib/dma-noop.c
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2018-01-31 7:43 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-31 7:43 [GIT PULL] dma-mapping updates for Linux 4.16 Christoph Hellwig
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.